Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/11/2014, 06:57
elcaiaimar
 
Fecha de Ingreso: septiembre-2014
Mensajes: 40
Antigüedad: 9 años, 7 meses
Puntos: 0
Pregunta Error [u"'' valor debe ser un n\xfamero decimal."]

Hola a todos! Tengo un problema con los DecimalFields en mi forms. Tengo un formulario bastante largo y quiero dejar algunos campos en blanco. El problema es que cuando dejo en blanco algún campo DecimalField y envío el formulario, django me devuelve el siguiente error:

[u"'' valor debe ser un n\xfamero decimal."]


He probado en Forms a poner en estos campos required=False, e incluso en models a poner blank=True, null=True y hacer un makemigrations, un migrate y syncdb, y aún así me devuelve el mismo error.

Es que es imposible dejar un DecimalField en blanco? o hay alguna manera de que pueda funcionar?

Me han aconsejado que utilice el south pero tengo django 1.7 y según la página oficial de south no funciona para esta versión ya que tiene sus propias nuevas migraciones.

Aquí os dejo parte de mi forms y mi models, pero creo que esta todo correcto:

Código Python:
Ver original
  1. forms.py:
  2.  
  3. class PozosForm(forms.Form):
  4.     codpozo = forms.CharField(max_length=20)
  5.     coorx = forms.DecimalField(max_digits=13, decimal_places=5)
  6.     coory = forms.DecimalField(max_digits=13, decimal_places=5)
  7.     tipo = forms.CharField(max_length=20, required=False)
  8.     cotatrapa = forms.DecimalField(max_digits=6, decimal_places=2, required=False)
  9.     profundidad = forms.DecimalField(max_digits=6, decimal_places=2, required=False)
  10.     cotafondo = forms.DecimalField(max_digits=6, decimal_places=2, required=False)
  11.     material = forms.ChoiceField(choices=MATERIAL_POZOS, required=False)
  12.     materialpates = forms.ChoiceField(choices=MATERIAL_PATES, required=False)
  13.     diametro = forms.DecimalField(max_digits=20, decimal_places=2, required=False)
  14.     largotrapa = forms.DecimalField(max_digits=20, decimal_places=2, required=False)
  15.     seccionmayor = forms.DecimalField(max_digits=5, decimal_places=0, required=False)
  16.     seccionmenor = forms.DecimalField(max_digits=5, decimal_places=0, required=False)
  17.     numacometidas = forms.DecimalField(max_digits=2, decimal_places=0, required=False)
  18.  
  19. models.py:
  20.  
  21. class Pozo(models.Model):
  22.     # gid_pozo = models.IntegerField(primary_key=True)
  23.     # gid_colector = models.ForeignKey(Colector)
  24.     codpozo = models.CharField(max_length=20)
  25.     coorx = models.DecimalField(max_digits=13, decimal_places=5)
  26.     coory = models.DecimalField(max_digits=13, decimal_places=5)
  27.     tipo = models.CharField(max_length=20)
  28.     cotatrapa = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
  29.     profundidad = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
  30.     cotafondo = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
  31.     material = models.CharField(max_length=20)
  32.     materialpates = models.CharField(max_length=20)
  33.     diametro = models.DecimalField(max_digits=20, decimal_places=2, blank=True, null=True)
  34.     largotrapa = models.DecimalField(max_digits=20, decimal_places=2, blank=True, null=True)
  35.     seccionmayor = models.DecimalField(max_digits=5, decimal_places=0, blank=True, null=True)
  36.     seccionmenor = models.DecimalField(max_digits=5, decimal_places=0, blank=True, null=True)
  37.     numacometidas = models.DecimalField(max_digits=2, decimal_places=0, blank=True, null=True)

Sabe alguien que debo hacer?
Muchas gracias y un saludo!

Última edición por razpeitia; 18/11/2014 a las 08:42