[pyar] Django Admin: Error al utilizar botón "save as new"

Daniel Moisset dmoisset en machinalis.com
Jue Jun 26 12:37:36 ART 2014


Dos cosas que sé que estan mal mal, pero que no estoy seguro si son la
causa de tu problema:

 * El clean() debería llamar a super, asi tenes la validacion y filtrado de
datos estandar.
 * En clean no uses el atributo instance, sino el atributo clean_data de
los forms para acceder a los datos

Ah, y lo que te dijeron de cambiar el default por 0.000 NO lo hagas, nunca
conviertas float a decimal (int con decimal esta bien porque los int son de
precision exacta). El 0 que tenías está bien

Saludos,
    D.


2014-06-26 12:24 GMT-03:00 Nicolás Rivella <rive08 en hotmail.com>:

> Muchas gracias por sus respuestas,
>
> Dejo el link con el código solicitado: http://pastebin.com/B52Xd8Jj
>
> @Sebastián Seba: Modifiqué el default del campo "distribucion" por 0.000,
> pero parece que no es el problema.
>
> Con respecto a la sugerencia de cambiar el:
>
> verbose_name_plural = u'distribucion'
>
> Por
> class Meta:
>     verbose_name = u'distribución'
>     verbose_name_plural = u'distribuciones'
>
> El tema es que el Admín de Django utiliza el verbose_name_plural como
> título del inLine, y en realidad como son Items que representan la
> distribución de costos de UNA orden de compra, me parece que queda mejor
> "Distribución" en singular.
> Quizás haya una forma de decirle a Django que use el singular y no el
> plural como título del InLine?
>
> Saludos,
>
> ------------------------------
> Date: Thu, 26 Jun 2014 12:04:55 -0300
> From: dmoisset en machinalis.com
> To: pyar en python.org.ar
> Subject: Re: [pyar] Django Admin: Error al utilizar botón "save as new"
>
>
> pone en un pastebin el coldigo del Inline y del modeladmin relevantes;
> puede servir para diagnosticar
>
> Saludos, D.
>
>
> 2014-06-26 11:39 GMT-03:00 Nicolás Rivella <rive08 en hotmail.com>:
>
> Buenos días lista,
>
> Antes que nada me presento, trabajo en sistemas hace más de cinco años,
> pero estoy haciendo mis primero pasos con programación en Python. Estoy
> subscrito a la lista desde hace rato, y he realizado varios cursos de
> programación "básica" en Coursera basados en Python. Hace años que intento
> convencer a mi jefe de utilizar Python en algún proyecto (sobre todo para
> meterme con Python EN SERIO y no solo haciendo TPs para algún curso) y
> finalmente el día llegó. Necesitábamos hacer un "Panel de Control" con
> indicadores de I.T., y cuando me enteré armé un proyecto simple con el
> Admin de Django para mostrarle lo "fácil" que era y le gustó.
> Y, como no podía ser de otra manera, cuando me tocó desviarme un poco de
> los tutoriales empezaron los problemas.
>
> Y, con este en particular no se para dónde agarrar :s
>
> Para facilitar la carga de registros similares en el Admin de Django,
> habilité el boton "Save As New", el tema es que al utilizarlo, Django se
> queja de la siguiente manera:
>
> Django Version: 1.6.5
> Exception Type: ValueError
> Exception Value: invalid literal for int() with base 10: ''
> Exception Location: C:\Python27\lib\site-packages\django\db\models\fields\__init__.py
> in get_prep_value, line 613
>
> El admin.ModelAdmin con el que estoy teniendo problemas, incluye un
> "inline" (admin.TabularInline), si comento la linea donde defino en inline,
> e intento "Guardar como nuevo", no tengo problemas, por lo que asumo que el
> tema surge al querer "copiar" los objetos relacionados a este inLine.
>
> El modelo incluido en el inLine es bastante simple:
>
> class Distribucion(models.Model):
>     centro_costo = models.ForeignKey( CentroCosto, verbose_name = u'Centro
> de Costo' )
>     distribucion = models.DecimalField( default = 0, max_digits = 6,
> decimal_places = 3, verbose_name = '% de Distribución' )
>     shoppingCart = models.ForeignKey( ShoppingCart)
>
>     class Meta:
>         verbose_name_plural = u'distribución'
>
> Y las validaciones que hago en el método "clean" del InlineFormset tampoco
> serían en problema, ya que probé comentando todo y reiniciando el
> runserver, pero el problema persiste.
>
> ¿alguno ha tenido problemas parecidos con el "save as new", o se le ocurre
> por dónde puedo comenzar a buscar la solución? Ya que estoy bastante
> perdido :s.
>
> Intenté preguntarle a San Google, pero no encuentro nada relacionado, solo
> encontré un ticket en Django por un problema similar "save_as=True and
> generic inline in admin gives IndexError", pero fue cargado hace varios
> años ya, y por lo que veo la solución que proponen ya fue implementada en
> las nuevas versiones de Django.
>
> Desde ya, muchas gracias por su ayuda.
> Saludos,
> Rive.
>
> P.D.: De ser necesario no tengo problema en pasar parte del código, pero
> entiendo que en el email inicial iba a hacer más engorrosa la lectura y
> tengo la esperanza de que el problema sea alguna boludez que estoy pasando
> por alto.
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
>
>
> _______________________________________________ pyar mailing list
> pyar en python.org.ar http://listas.python.org.ar/listinfo/pyar PyAr -
> Python Argentina - Sitio web: http://www.python.org.ar/ La lista de PyAr
> esta Hosteada en USLA - Usuarios de Software Libre de Argentina -
> http://www.usla.org.ar
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140626/fcdacdc0/attachment-0001.html>


More information about the pyar mailing list