ModelFormフィールドで '一意の'エラーを上書きする方法
-
21-12-2019 - |
質問
ModelFormのフィールドの '一意の'エラーメッセージを上書きしようとしています。 docs Django 1.6のために、しかし私はそれを働くことができません。かなり簡単なもの、私は持っています:
model.py:
class EmailAddress(Model):
"""An email address."""
address = EmailField(unique=True)
def __unicode__(self):
return self.address
.
Views.py:
class EmailAddressForm(ModelForm):
class Meta:
model = EmailAddress
fields = {'address'}
error_messages = {
'address': {
u'unique': _('That address has already been added.'),
}
}
.
重複したメールを入力した場合、
emailaddress_form.errors = {'address': [u'Email address with this Address already exists.']}.`
.
私はソースコードを掘っています。うまくいけば、私は明白なものを欠いています。任意の提案?
解決
これを試してみてください: -
アドレスフィールドの変更: -
address= model.emailfield(一意= true、error_messages= {'固有': "アドレスは既に追加されています。"})
他のヒント
EmailAddressformクラスでメソッド "clean_address"を作成することを願って、これはあなたの問題を解決しました。
def clean_address(self):
"""Prevent duplicate email addresses."""
if 'email' in self.changed_data:
if self.Meta.model.all().filter('address =', self.cleaned_data['address']).count():
raise forms.ValidationError('Email address with this Address already exists.: %s.' %
self.cleaned_data['address'])
return self.cleaned_data['address']
. 所属していません StackOverflow