/ / Jak wyświetlić komunikat o błędzie nad polem - python, django

Jak wyświetlić komunikat o błędzie nad polem - python, django

Chcę wyświetlić komunikat o błędzie, jeśli polejest puste w administracji Django. W tej chwili wiem, jak wprowadzić ValidationError na początku strony, ale muszę uzyskać komunikat tuż nad pustym polem. Jak to zrobić?

nie udało się znaleźć odpowiedzi.

class Article(models.Model):
...
title_ru = models.CharField(max_length=255, blank=True)
...

class ArticleAdmin(admin.ModelAdmin):

class form(forms.ModelForm):

class Meta:
model = models.Article

def clean(self):
cleaned_data = super(forms.ModelForm, self).clean()
title_ru = cleaned_data["title_ru"]
if not title_ru:
raise forms.ValidationError("Title ru")

return self.cleaned_data

forms.ValidationError("Title ru") wyświetla komunikat u góry strony, ale potrzebuję tej wiadomości na tym polu

jak zdobyć wiadomość na polu Title_ru?

Odpowiedzi:

2 dla odpowiedzi № 1

Od kiedy wychowujesz ValidationError w clean metoda, widzisz komunikat o błędzie u góry strony. Podnieś błąd sprawdzania poprawności w clean_title_ru zamiast

def clean_title_ru(self):
title_ru = self.cleaned_data["title_ru"]
if not title_ru:
raise forms.ValidationError("Title ru")

return self.cleaned_data["title_ru"]

0 dla odpowiedzi nr 2

Najlepszym sposobem jest sprawdzenie wartości w clean_title_ru, ale jeśli chcesz sprawdzić wiele wartości, możesz to zrobić w następujący sposób:

def clean(self):
cleaned_data = super(forms.ModelForm, self).clean()
title_ru = cleaned_data["title_ru"]
if not title_ru:
msg = u"error in Title ru"
self._errors["title_ru"] = self.error_class([msg])

# These fields are no longer valid. Remove them from the cleaned data.
del cleaned_data["title_ru"]

return self.cleaned_data