Измените сообщение об ошибке для отношения M2M

Измените сообщение об ошибке для отношения M2M:

У меня есть 2 модели, Item и Type:

class Item(models.Model):
    types = models.ManyToManyField(Type, related_name='items')


class ItemForm(ModelForm):

    class Meta:
        model =Item
        fields = ['types', 'name', 'desc']

Я получаю следующую ошибку проверки:

Выберите правильный вариант. 0 не является одним из доступных вариантов.

Я хочу изменить это сообщение. Как это можно сделать?

0
задан 13 August 2018 в 15:46

1 ответ

В формах Django вы можете очистить ввод пользователя. Для этого вы можете определить метод, начинающийся с clean_ и заканчивая именем поля. В вашем случае вы можете расширить класс формы следующим образом:

class  ItemForm(ModelForm):

    class Meta:
        model =Item
        fields = ['types', 'name', 'desc']

    def clean_types(self):
        types = self.cleaned_data['types']
        # now apply logic to check types
        # this is just an example you might need to change
        if types == 0:
            raise forms.ValidationError('Please select valid choices for types')
        # modify the validation error as you please
        return types

Для получения подробной информации о формах и проверке полей, пожалуйста, проверьте официальную документацию Django.

1
ответ дан 15 August 2018 в 17:00
  • 1
    Я знаю, я использовал clean_types, но Django игнорирует его, не вызывайте метод. Я пытаюсь отлаживать, а также добавлять «печать» внутри – user3541631 13 August 2018 в 18:54

Другие вопросы по тегам:

Похожие вопросы: