Domanda

Sto cercando di ignorare il messaggio di errore "unico" per un campo nel mio ModenForm.Sto cercando di seguire il Docs per Django 1.6, ma non riesco a farlo funzionare.Roba piuttosto semplice, ho:

models.py:

class EmailAddress(Model):
    """An email address."""
    address = EmailField(unique=True)

    def __unicode__(self):
        return self.address
.

Visualizzazioni.py:

class EmailAddressForm(ModelForm):
    class Meta:
        model = EmailAddress
        fields = {'address'}
        error_messages = {
            'address': {
                u'unique': _('That address has already been added.'),
            }
        }
.

Se inserisco un'e-mail duplicata, ottengo:

emailaddress_form.errors = {'address': [u'Email address with this Address already exists.']}.`
.

Ho scavato nel codice sorgente e, per quanto posso dire, sto passando correttamente il delegato error_messages in cui verrà prelevato dalla funzione django.forms.models.fields_for_model chiamata dal metaclass.Spero che mi manchi qualcosa di ovvio.Qualche suggerimento?

È stato utile?

Soluzione

Prova questo: -

Campo di modifica dell'indirizzo su: -

Indirizzo= models.emailfield (univoco= true, error_messages= {'unique': "Quell'indirizzo è già stato aggiunto."})

Altri suggerimenti

Creare un metodo "Clean_Address" sulla classe EmailAddressform, si spera che questo risolverà il tuo problema.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top