mam prosty model, który jest zdefiniowany jako:formularz Django nie walidacji na unikalnej dziedzinie
class Article(models.Model):
slug = models.SlugField(max_length=50, unique=True)
title = models.CharField(max_length=100, unique=False)
i formy:
class ArticleForm(ModelForm):
class Meta:
model = Article
Walidacja tutaj nie powiedzie się przy próbie aktualizacji istniejącego wiersz:
if request.method == 'POST':
form = ArticleForm(request.POST)
if form.is_valid(): # POOF
form.save()
Tworzenie nowego wpisu jest w porządku, jednak kiedy próbuję aktualizować dowolne z tych pól, walidację nie Karnety.
„błędy” własność nie miał nic, ale spadła do debuggera i głęboko w trzewiach Django Widziałem to:
ślimak: „Artykuł ten Żaden już istnieje”
tak wygląda is_valid() kończy się niepowodzeniem na unikatowej kontroli wartości, ale wszystko, co chcę zrobić, to: aktualizacja wiersz.
Nie mogę po prostu zrobić:
form.save(force_update=True)
... bo forma nie powiedzie się na walidacji.
To wygląda na coś bardzo prostego, ale po prostu nie mogę tego rozgryźć.
Używam Django 1.0.2
Co croaks jest BaseModelForm.validate_unique(), która jest wywoływana na formularzu inicjalizacji.
Proszę edytować i dodawać swój kod formularza. – Soviut