我使用 ModelForm 创建我的表单。除了一件事-验证唯一字段外,一切正常。代码:
class Article(models.Model):
...
title = models.CharField(max_length=255, unique=True, error_messages={'max_length' : 'max translation',
'unique' : 'unique translation',
'required' : 'req translation',})
...
class ArticleForm(ModelForm):
...
title = forms.CharField(max_length=255, min_length=3, error_messages={'required' : 'req translation',
'min_length' : 'min translation',
'max_length' : 'max translation',
'unique' : 'unique translation',})
但是当我用非唯一标题保存我的表单时,我没有收到我的自定义翻译错误,但我收到了默认错误。如何解决它,显示我的唯一字段错误?
编辑: 我认为,我发现这样做非常方便。也许有人会使用它:)
def unique_error_message(self, model_class, unique_check):
if 'put_field_name_here' in unique_check and len(unique_check) == 1:
return 'Here goes a custom unique error'
return super(Article, self).unique_error_message(model_class, unique_check)