Tengo un modelo simple que se define como:forma Django falla la validación en un campo único
class Article(models.Model):
slug = models.SlugField(max_length=50, unique=True)
title = models.CharField(max_length=100, unique=False)
y la forma:
class ArticleForm(ModelForm):
class Meta:
model = Article
La validación aquí falla al intentar actualizar una existente fila:
if request.method == 'POST':
form = ArticleForm(request.POST)
if form.is_valid(): # POOF
form.save()
Creación de una nueva entrada está muy bien, sin embargo, cuando trato de actualizar cualquiera de estos campos, la validación ya no pasa.
La propiedad "errores" no tenían nada, pero lo deja caer en el depurador y profundo de las entrañas de Django que vi esto:
babosa: "el artículo con esta Ninguno ya existe"
Así que parece is_valid() falla en una comprobación de valor único, pero todo lo que quiero hacer es actualizar la fila.
simplemente no puede hacer:
form.save(force_update=True)
... porque la forma se producirá un error en la validación.
Esto parece algo muy simple, pero no puedo entenderlo.
Me postulo Django 1.0.2
Lo que estira la pata es BaseModelForm.validate_unique() que se llama en el formulario de inicialización.
Por favor, editar y publicar el código del formulario. – Soviut