更改 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 不是可用的选项之一。
我想更改此消息。怎么做?
在 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 文档。