Pregunta

Estoy tratando de reemplazar la "única" del mensaje de error para un Campo en mi ModelForm.Estoy tratando de seguir la docs para Django 1.6, pero no puedo conseguir que funcione.Algo bastante sencillo, yo tengo:

models.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.'),
            }
        }

Si me escriba un correo electrónico duplicados, me sale:

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

He hurgó en el código fuente, y por lo que puedo decir que me estoy pasando el error_messages dict correctamente en donde será recogido por el django.forms.models.fields_for_model la función llamada por el Metaclass.Esperemos que me estoy perdiendo algo que es obvio.Alguna sugerencia?

¿Fue útil?

Solución

prueba Esto :-

Cambio de dirección de campo :-

dirección = modelos.EmailField(unique=True, error_messages={'únicos':"Que la dirección ya ha sido agregado."})

Otros consejos

Crear un método "clean_address" en EmailAddressForm clase, espero que Esto se ha resuelto el 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']
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top