質問

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']
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top