Layout personalizado para formularios

80 views
Skip to first unread message

Carlos Aguilar

unread,
May 30, 2012, 1:51:11 AM5/30/12
to djan...@googlegroups.com
Hola a todos,

Hay alguna forma de poder renderizar los formularios con un layour más o menos complejo?

Por ejemplo, si el formulario se divide en secciones, necesito agregar un formulario a dichas secciones, y por supuesto, necesito que dentro del formulario pueda mostrar un mapa que use google maps y me permita colocar un punto, esto último se que no es complicado, porque solo necesito conocer el ID de un div para hacerlo con javascript.

Lo que más me importa es saber, como colocar dicho div dentro del form y poder poner los encabezados en las secciones del formulario.

Saludos.

--
Carlos Aguilar
Consultor Hardware y Software
DWD&Solutions
http://www.dwdandsolutions.com
http://www.houseofsysadmin.com
Cel: 78740173
Oficina: 22693598

Carlos Luis Jordán Murillo

unread,
May 30, 2012, 6:55:36 AM5/30/12
to djan...@googlegroups.com
Pasale por parametros el objeto form en el view y en el template coloca esto

<form action="/contact/" method="post">
    {{ form.non_field_errors }}
    <div class="fieldWrapper">
        {{ form.subject.errors }}
        <label for="id_subject">Email subject:</label>
        {{ form.subject }}
    </div>
    <div class="fieldWrapper">
        {{ form.message.errors }}
        <label for="id_message">Your message:</label>
        {{ form.message }}
    </div>
    <div class="fieldWrapper">
        {{ form.sender.errors }}
        <label for="id_sender">Your email address:</label>
        {{ form.sender }}
    </div>
    <div class="fieldWrapper">
        {{ form.cc_myself.errors }}
        <label for="id_cc_myself">CC yourself?</label>
        {{ form.cc_myself }}
    </div>
    <p><input type="submit" value="Send message" /></p>
</form>

o esto 

<form action="/contact/" method="post">
    {% for field in form %}
        <div class="fieldWrapper">
            {{ field.errors }}
            {{ field.label_tag }}: {{ field }}
        </div>
    {% endfor %}
    <p><input type="submit" value="Send message" /></p>
</form>

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



--
Saludos
Carlos Jordán
Ingeniero  
Escuela Superior Politécnica del Litoral
Ciencias Computacionales especialización Sistemas de Información

Carlos Aguilar

unread,
May 30, 2012, 10:59:44 AM5/30/12
to djan...@googlegroups.com
Hola, te comento que conozco esos métodos, pero yo quiero poder armar un formulario como el de la siguiente imagen
adminscreens1.png

Carlos Luis Jordán Murillo

unread,
May 30, 2012, 1:33:06 PM5/30/12
to djan...@googlegroups.com
Yo lo que hago es pasarle por parametros una bandera al templates y si es geolocalización entonces mando a ejecutar el geolocalización

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

Alexis Roda

unread,
May 30, 2012, 2:23:03 PM5/30/12
to djan...@googlegroups.com
Al 30/05/12 16:59, En/na Carlos Aguilar ha escrit:
> Hola, te comento que conozco esos m�todos, pero yo quiero poder armar un
> formulario como el de la siguiente imagen

Hace poco me encontr� con un problema parecido, no necesitaba insertar
un mapa pero si que quer�a agrupar los campos en fieldsets e incorporar
algunos elementos m�s para conseguir una presentaci�n agradable. C�mo
soy m�s de python que de HTML escrib� una peque�a librer�a.

La idea es anidar contenedores y otros elementos para definir como se
distribuye el contenido, algo tipo:

layout = Stacked( # distribuye el contenido uno encima de otro
H1("Cabecera"),
Horizontal( # distribuye el contenido uno al lado del otro
GoogleMap(...),
Stacked(
Button(...),
Button(...)
)
),
P("Introduzca bla bla bla", { "class" : "help" }),
FieldSet(
"titulo del fieldset",
FieldSubset( # pinta los campos field1, field2, ... de myform
# utilizando una tabla
"myform",
("field1", "field2", ...)
)
)
)

En cierta forma esto es una plantilla, define la estructura pero no
tiene contenido (contexto) que mostrar. En la vista, cuando vas a
renderizar la plantilla, le pasas en el contexto el layout vinculado a
un contexto:

render_to_response("plantilla.html",
{ "layout" : BoundLayout(
layout,
{ "myform" : un_obj_form }
)
})

Y en la plantilla pones:

{{ layout.render }}

No es muy distinto de hacerlo a mano en la plantilla pero personalmente
lo encuentro menos farragoso. Supongo que se podr�a conseguir lo mismo
definiendo una librer�a de "snippets" HTML y utilizando {% include %}.

Si tienes inter�s no tengo ning�n inconveniente en compartirla, pero
aviso que es una pre-pre-pre-alfa.



Saludos
Reply all
Reply to author
Forward
0 new messages