Re: [Django-es] Personalizar los input de HTML devueltos por las forms

579 views
Skip to first unread message

zodman

unread,
Oct 17, 2012, 12:39:01 PM10/17/12
to djan...@googlegroups.com
El 17 de octubre de 2012 03:01, Agustín Jamardo
<agusti...@gmail.com> escribió:
> Hola!
>
> Soy nuevo en Django, y la verdad es que aunque ya llevo un par de semanas
> peleándome con ello, no tengo ni idea, así que va mi primera pregunta.
>
> Como indico el el asunto, lo que busco es que cuando ejecute algo de este
> estilo:
>
> {% for field in form %}
> <div class="fieldWrapper">
> {{ field.errors }}
> {{ field.label_tag }}: {{ field }}
> {{ field.value}}
> </div>
> {% endfor %}
> {% csrf_token %}
> <p><input type="submit" value="Send messaged" /></p>
> </form>
>
> El valor devuelto, en este caso
> <input id="id_Variable" type="text" name="Variable" maxlength="NN" />
> , me devolviese algo como esto:
> <input type="text" name="variable" maxlength="NN" value="{% trans 'Valor
> elegido por mi' %} "class="input_init" onfocus="clearMe(this)"/>
>
> Como véis la diferencia es el valor inicial,y que haya una llamada a un
> Javascript, que no hace más que limpiar el cuadro de texto.
>
> Deciros que las forms.py las he hecho directamente desde models.py, es
> decir:
>
> from django.forms.models import ModelForm
> from auth_app.models import RegisterClass
>
>
> class RegisterForm(ModelForm):
> class Meta:
> model = RegisterClass
>
>
> Espero que con la información dada sea suficiente, y me podáis echar un
> cable.
>
> Gracias.
>
> Saludos!
>
> --
> Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del
> Framework Django de habla hispana" de Grupos de Google.
> Si quieres publicar en este grupo, envía un mensaje de correo
> electrónico a djan...@googlegroups.com
> Para anular la suscripción a este grupo, envíe un mensaje a
> django-es-...@googlegroups.com
> Para obtener más opciones, visita este grupo en
> http://groups.google.com.bo/group/django-es.

Ya probaste usando el parametro initial ?

https://docs.djangoproject.com/en/1.4/ref/forms/fields/#initial

--
Andres Vargas
www.zodman.com.mx

Astrock

unread,
Oct 19, 2012, 8:25:03 AM10/19/12
to djan...@googlegroups.com

Pero lo que veo es el valor initial solo le asigna para value, como se puede colocar el onfocus? Y otros atributos que se deseen

Alexis Roda

unread,
Oct 19, 2012, 9:06:25 AM10/19/12
to djan...@googlegroups.com
Al 19/10/12 14:25, En/na Astrock ha escrit:
> Pero lo que veo es el valor initial solo le asigna para value, como se
> puede colocar el onfocus? Y otros atributos que se deseen

La representaci�n (generaci�n del HTML) es responsabilidad de los
widgets. Con un Form puedes hacer algo como:

class _Form(Form):
campo = forms.DateField(
label=_(u"Label"),
widget=widgets.DateInput(
attrs={
"style" : "width: 8em",
"dojoType" : "dijit.form.DateTextBox",
},
),
)

los key/value del diccionario "attrs" se convierten en atributos de la
etiqueta HTML.

Con un FormField puedes hacer:

class _Form(ModelForm) :
class Meta :
model = models.Empresa
widgets = {
"nif" :widgets.TextInput(
attrs={"size" : 15}
),

o utilizar la misma t�cnica que con los Forms, definir expl�citamente el
campo.



Saludos

zodman

unread,
Oct 19, 2012, 11:33:50 AM10/19/12
to djan...@googlegroups.com
Para onfocus usa javascript

--
Andres Vargas
www.zodman.com.mx

sanhoerth

unread,
Oct 20, 2012, 6:44:16 AM10/20/12
to djan...@googlegroups.com
Hola, para personalizar la salida hay una app que se llama Crispy Forms
Lo bueno de esto que ya viene con un JS y es fácil tunear. Además podés estandarizar todos los formularios de tu aplicación.
Espero sirva.
Abrazos
San Hoerth 
Reply all
Reply to author
Forward
0 new messages