Django, как настраивать встроенные сообщения об ошибках - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь показать встроенные сообщения об ошибках, когда пользователь обновляет местоположение и имя пары с существующим.Но я не знаю, как это сделать.Спасибо!

Вот мой код:

class LocationUpdateView(generic.UpdateView):
    ...

    def form_valid(self, form):
        form.instance.location = form.instance.cylinder.upper()
        condition = {
            'location': form.instance.location,
            'name': form.instance.name,
        }
        item = Address.objects.filter(**condition)
        if item.count() > 0:
            # should I custom error message here?
            return super().form_invalid(form)
        return super().form_valid(form)

1 Ответ

0 голосов
/ 22 апреля 2019

Не используйте form_valid() для проверки.Вы должны сделать это в своем классе формы.

В своем классе формы используйте clean_FIELDNAME для проверки поля.

#forms.py

class MyForm(ModelForm):
...
    def clean_location(self):
        location = self.cleaned_data['location']
        self.instance.location = self.instance.cylinder.upper()
        condition = {
            'location': self.instance.location,
            'name': self.instance.name,
        }
        item = Address.objects.filter(**condition)
        if item.count() > 0:
            raise ValidationError("Custom message")
    return location

документы

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