Sé cómo configurar mis propios mensajes de error personalizados cuando uso formularios ordinarios de Django. Pero, ¿qué pasa con Django Form basado en un modelo existente? apareceDjango, Modelos y Formularios: reemplace el mensaje "Este campo es obligatorio"
Class MyModel(models.Model):
name = models.CharField(max_length='30')
Class MyForm(forms.ModelForm):
Class Meta:
model = MyModel
Si creo la forma y tratar de publicar él, el mensaje "Este campo es obligatorio": Considere siguiente modelo y la forma. Pero, ¿cómo cambiarlo? Por supuesto que podría hacer algo como esto:
Class MyForm(forms.ModelForm):
model = forms.CharField(error_messages = {'required': "something..."})
Class Meta:
model = MyModel
Pero de acuerdo con la documentación, no será preservado atributo max_length y tengo que escribirlo de forma explícita a la definición del formulario. Pensé que el propósito de las Formas del Modelo es evitar escribir el mismo código dos veces. Entonces tiene que haber alguna manera fácil de cambiar el mensaje de error personalizado sin reescribir todo el formulario. Básicamente, sería suficiente para mí si mi mensaje tuviera el siguiente aspecto: "Se requiere el nombre del campo".
Por favor ayuda.
Gracias, eso se ve bien. Sin embargo, tuve la impresión de que evitó escribir el mismo código dos veces pero escribiendo otro código que es más largo y feo;). Sin embargo, ahorrará trabajo al menos en formularios grandes, así que gracias de nuevo. – tobik
Supongo que cada uno es suyo. Si necesita reemplazar todos los mensajes 'requeridos', este es el más limpio por el momento. Tampoco creo que sea más largo, a menos que cuentes la llamada __init__, que generalmente uso en todo. –
Tenga en cuenta que obtendrá [un misterioso 'KeyError'] (http://stackoverflow.com/questions/7463159/django-form-is-valid-keeps-throwing-keyerror) si obtiene un error' invalid' y se pone No le proporcionamos un mensaje. –