更改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不是可用选项之一。
我想更改此消息。怎么办?
答案 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。