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

Nicolás Rivella rive08 en hotmail.com
Jue Jun 26 14:39:14 ART 2014


Daniel, implementé ambos cambios, no fueron la solución a mi problema pero son bienvenidos.
Muchas gracias,Saludos,Rive.

Date: Thu, 26 Jun 2014 12:37:36 -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"

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'

Porclass 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.5Exception 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



_______________________________________________
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/5a0f7bef/attachment.html>


More information about the pyar mailing list