更改M2M关系的错误消息

时间:2018-08-13 12:34:41

标签: django django-models django-forms

更改M2M关系的错误消息:

我有2个模型,项目和类型:

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


class ItemForm(ModelForm):

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

我收到以下验证错误:

  

选择一个有效的选择。 0不是可用选项之一。

我想更改此消息。怎么办?

1 个答案:

答案 0 :(得分:2)

在Django表单中,您可以 clean 用户输入。为此,您可以定义一个以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 documentation