Buscar este blog

viernes, 28 de junio de 2013

Modificar un campo en formularios al crearlos con modelForm

Problema: Hemos generado un formulario usando la propiedad modelForm de Django. Esto nos genera el formulario automáticamente, pero que ocurre cuando necesitamos cambiar algún elemento de un campo, esto es, help_text, mensajes de error, añadir una clase para usar con CSS.

Pues bien, la solución la tenemos en la función __init_ como sigue.

models.py


class NombreClaseModel:
     campo1 = tipo de campo1.............
     campo2 = tipo de campo2............

forms.py


class NombreDelFormulario(ModelForm):
     class Meta:
          model = NombreClaseModel

     def __init__(self, *args, **kwargs):
          super(NombreDelFormulario, self).__init__(*args, **kwargs) #Esto siempre hay que ponerlo
          self.fields['campo1'].help_text= 'Este campo solo permite números y letras'
           #Añadimos class="claseCSS" a la etiqueta HTML que corresponda al tipo de dato
          self.fields['campo1'].widget.attrs['class'] = 'claseCSS'
          """Vamos a cambiar el 'This field is required' que trae Django por defecto para un campo que es obligatorio rellenarlo por 'Este campo es obligatorio y lo vamos a hacer para todos los campos de este formulario."""
          for field in self.fields:
               self.fields[field].error_messages = {'required': 'Este campo es obligatorio'}

Encuentra otras soluciones en el nuevo blog ó descargate themes y módulos en www.softwild.es


Si necesitas ayuda escribe a través del formulario de contacto en la parte derecha.
Nota: Antes de acceder al formulario aparecerá un anuncio, que en 5 segundos podrás cerrar.

No hay comentarios:

Publicar un comentario

Gracias por comentar.

Si has realizado alguna consulta, responderemos lo antes posible. Gracias