ModelForm中ManyToManyField的error_messages

时间:2011-08-09 14:53:40

标签: django forms

我有ManyToManyField字段的模型。我也有使用此模型的ModelForm。

如何为此类字段定义error_messages?

示例:

class Article(models.Model):
    categories = models.ManyToManyField(Category)

class ArticleForm(ModelForm):
    class Meta(ContentForm.Meta):
        model = Article

我想覆盖ArticleForm模型中的类别字段的“必需”错误消息。

我在谷歌搜索这个问题,但所有解决方案都不起作用,他们不是形式ModelForm或ManyToManyField。

1 个答案:

答案 0 :(得分:1)

您可以尝试对此字段进行自己的验证。在m2m字段的模型集中,空白= True,并在表单中实现clean_categories方法。如果字段类别无效,请使用您的内容引发异常。

模特:

categories = models.ManyToManyField(Category, blank=True)

表格:

def clean_categories(self):
    if not self.cleaned_data.get('categories'):
        raise forms.ValidationError('My custom message')
    return self.cleaned_data['categories']