J'ai un modèle simple qui est défini comme:forme Django validation échoue sur un champ unique
class Article(models.Model):
slug = models.SlugField(max_length=50, unique=True)
title = models.CharField(max_length=100, unique=False)
et la forme:
class ArticleForm(ModelForm):
class Meta:
model = Article
La validation échoue ici lorsque je tente de mettre à jour une existante ligne:
if request.method == 'POST':
form = ArticleForm(request.POST)
if form.is_valid(): # POOF
form.save()
Création d'une nouvelle entrée est bien, cependant, lorsque je tente de mettre à jour l'un de ces domaines, la validation ne passe.
La propriété « erreurs » rien eu, mais je tombé dans le débogueur et profondément dans les entrailles de Django, j'ai vu ceci:
limaces: « Article ce Aucun existe déjà »
Il ressemble is_valid() échoue sur une vérification de valeur unique, mais tout ce que je veux faire est mettre à jour la ligne.
Je ne peux pas le faire:
form.save(force_update=True)
... parce que la forme échouera à la validation. Cela ressemble à quelque chose de très simple, mais je n'arrive pas à le comprendre.
Je courais Django 1.0.2
Qu'est-ce que croasse est BaseModelForm.validate_unique() qui est appelée à l'initialisation du formulaire.
S'il vous plaît modifier et envoyer votre code de formulaire. – Soviut