Django. Показать сообщение об ошибке на текущей странице - PullRequest
0 голосов
/ 12 апреля 2020

Помогите мне, пожалуйста! Я пытаюсь показать сообщение об ошибке:

В формах:

    def clean_form(self):
       url = self.cleaned_data['text']
       if url == 'qwe':
           raise ValidationError("Error")
       return self.cleaned_data

Вид:

def main_site(request):
  if request.method == 'POST':
    form = Form(request.POST or None)
    if form.is_valid():
        form.clean_form()
        link = form.cleaned_data['text']
    ...

Но когда я отправляю 'qwe' в форме:

enter image description here

и нажмите «отправить». Возьмите:

enter image description here

Но я хочу увидеть ошибку на той же странице. Что я должен сделать? Спасибо!

1 Ответ

1 голос
/ 12 апреля 2020

Вы проверяете только поле text, поэтому вам следует переопределить метод clean_text.

def clean_text(self):
   url = self.cleaned_data['text']
   if url == 'qwe':
       raise ValidationError("Error")
   return url

Удалите строку clean_form() из своего кода. Django автоматически вызовет для вас метод clean_text при проверке if form.is_valid().

См. Документы по очистке указанного c поля для получения дополнительной информации.

Если вы проверяете несколько полей одновременно, вы должны переопределить clean. См. Документы по очистки полей, которые зависят друг от друга для получения дополнительной информации об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...