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 originalforms.py:
class PozosForm(forms.Form):
codpozo = forms.CharField(max_length=20)
coorx = forms.DecimalField(max_digits=13, decimal_places=5)
coory = forms.DecimalField(max_digits=13, decimal_places=5)
tipo = forms.CharField(max_length=20, required=False)
cotatrapa = forms.DecimalField(max_digits=6, decimal_places=2, required=False)
profundidad = forms.DecimalField(max_digits=6, decimal_places=2, required=False)
cotafondo = forms.DecimalField(max_digits=6, decimal_places=2, required=False)
material = forms.ChoiceField(choices=MATERIAL_POZOS, required=False)
materialpates = forms.ChoiceField(choices=MATERIAL_PATES, required=False)
diametro = forms.DecimalField(max_digits=20, decimal_places=2, required=False)
largotrapa = forms.DecimalField(max_digits=20, decimal_places=2, required=False)
seccionmayor = forms.DecimalField(max_digits=5, decimal_places=0, required=False)
seccionmenor = forms.DecimalField(max_digits=5, decimal_places=0, required=False)
numacometidas = forms.DecimalField(max_digits=2, decimal_places=0, required=False)
models.py:
class Pozo(models.Model):
# gid_pozo = models.IntegerField(primary_key=True)
# gid_colector = models.ForeignKey(Colector)
codpozo = models.CharField(max_length=20)
coorx = models.DecimalField(max_digits=13, decimal_places=5)
coory = models.DecimalField(max_digits=13, decimal_places=5)
tipo = models.CharField(max_length=20)
cotatrapa = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
profundidad = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
cotafondo = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
material = models.CharField(max_length=20)
materialpates = models.CharField(max_length=20)
diametro = models.DecimalField(max_digits=20, decimal_places=2, blank=True, null=True)
largotrapa = models.DecimalField(max_digits=20, decimal_places=2, blank=True, null=True)
seccionmayor = models.DecimalField(max_digits=5, decimal_places=0, blank=True, null=True)
seccionmenor = models.DecimalField(max_digits=5, decimal_places=0, blank=True, null=True)
numacometidas = models.DecimalField(max_digits=2, decimal_places=0, blank=True, null=True)
Sabe alguien que debo hacer?
Muchas gracias y un saludo!