Django: Как переопределить сообщение об ошибке по умолчанию? - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь настроить сообщение об ошибке This field is required, но оно не работает должным образом.

Сначала я попытался создать собственный валидатор.

validators.py

def required_field(input):
    if input is None or input == '':
        raise ValidationError("Custom error message")

и models.py

a_field = models.TextField(validators=[required_field])

Однако валидатор не работает и появляется сообщение об ошибке по умолчанию This field is required..

Во-вторых, я переопределяю clean method

models.py

def clean(self):
    if not self.a_field:
        raise ValidationError({'a_field': 'Custom Error Message'})

Появляется сообщение об ошибке, но за ним следует сообщение об ошибке по умолчанию.Как я могу переопределить это напрямую?

Я использую crispy_form кстати.

html

{{ form|crispy }}

1 Ответ

0 голосов
/ 14 февраля 2019

Вам нужно сделать это в методе init вида

class MyForm(forms.ModelForm):

class Meta:
        model = MyModel

def __init__(self, *args, **kwargs):
    super(MyForm, self).__init__(*args, **kwargs)
    self.fields['a_field '].error_messages = {'required': 'Custom Error Message'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...