Listas en HTML

0 views
Skip to first unread message

Melinton Navas

unread,
Nov 19, 2010, 10:08:42 PM11/19/10
to campus-...@googlegroups.com
Buenas noches! Miren, estaba programando un template para el calendario y necesito manipular listas dentro de este template. Desde un view, el template recibe diferentes listas como parámetros y necesito concatenar los elementos de diferentes listas, p. ej.

if( coloreado[n] ):
    dia[n] + mes + anho... etc.

En donde "n" es el número que se está iterando p.ej. "for n in lista_numeros:". El problema, es que el parser de Django no soporta dicha referencia (dia[n]) y no he encontrado alguna forma de realizar esta operación. Agradecería su ayuda.

Saludos,

--
A superbia initium sumpsit omnis perditio  (De la soberbia toma el inicio toda perdición)
(V)€L1(\)T0(\) '07

====================
 Melinton Navas                       
 +502 56551529
====================

Carlos López

unread,
Nov 19, 2010, 10:34:31 PM11/19/10
to campus-...@googlegroups.com
Que ondas Melinton,

por convención, o bueno, por buenas prácticas, se prefiere hacer toda
la lógica en el controlador (views.py) y no en el template. Podés
concatenar los elementos de una lista, mirá el método extend() de una
lista en python. Se te complica mucho hacerlo en el controlador y no
en el template? Si es asi, contame como está el asunto?

kmel

2010/11/19 Melinton Navas <melinton...@gmail.com>:

Melinton Navas Gonzalez

unread,
Nov 19, 2010, 10:38:01 PM11/19/10
to campus-...@googlegroups.com
Inicialmente lo tenía así (programado en la vista), pero necesitaba tener como que un "tracking" en el template para cada link y así poder verificar si había que pintarlo de rojo o no, porque eso ya se define en el template como tal, igual para el link necesito partes diferentes de la cadena, p.ej. necesito ir al Lunes 5 de noviembre, entonces tengo q obtener de la lista de días el número del día, el número del mes y el anho. Y así hay un par de cosas más.

"Carpe diem quam minimum credula postero"
(V)€L1(\)T0(\) '07

====================
 Melinton Navas                       
 +502 56551529
====================




Carlos López

unread,
Nov 19, 2010, 11:27:52 PM11/19/10
to campus-...@googlegroups.com
Para lo de pintar, es accesar a un atributo de los elementos de la
lista. Tenés una List[Link]

{% for link in lista_de_links %}
<span
{% if lista.hay_que_pintarlo %}
class="color_rojo"
{% endif %}
><a href="{{ link.refernecia}}">{{ link.texto }}</span>
{% endfor %}

Definitivamente, tu lista tiene que ser de fechas, para que podás hacer

{{ fecha.dia }}
{{ fecha.mes }}
{{ fecha.ano }}

Me contás si te suena.

kmel

2010/11/19 Melinton Navas Gonzalez <melinto...@hotmail.com>:

Melinton Navas

unread,
Nov 19, 2010, 11:33:12 PM11/19/10
to campus-...@googlegroups.com
Ok, sí te entiendo, solo, para que el link tenga ese "hay_que_pintarlo" habría que hacer una clase que represente dicho link? O cómo le agregaríamos dicha propiedad al link?

Carlos López

unread,
Nov 19, 2010, 11:43:19 PM11/19/10
to campus-...@googlegroups.com
cabal... esas clases a veces les dicen "DTO" [1] en lo personal no me
gusta pero es lo mas sencillo

La manera mas elegante es talvez, serializando los datos con JSON, y
vos podés regresar los datos que querras (es como un mapa de datos).
Hay un ejemplo en crear_grupo (para serializar), pero estos no
regresan directamente al template... si no que vos los tenés que
popular con Ajax típicamente. Podés ver que data regresa con Firebug
(de firefox)

sorry matey, a veces hay cosas que decis 'wtf porque tengo que hacer
tanto por esto' ;/

También encontré otro asunto con el que no estoy muy familiarizado,
parece lo más straight-forward de hacer [2]

[1] http://en.wikipedia.org/wiki/Data_transfer_object
[2] Playing with Context Objects, en http://www.djangobook.com/en/1.0/chapter04/


2010/11/19 Melinton Navas <melinton...@gmail.com>:

Melinton Navas Gonzalez

unread,
Nov 19, 2010, 11:54:23 PM11/19/10
to campus-...@googlegroups.com
jaja no hay clavo, cuando toca, toca. Yo allí investigo y miro como le hago ;). Solo que este finde, no sé si podré dedicarle tiempo a esto, porque tengo que darle a ecuas para el lunes e historia el martes, pero de ahí en adelante ya me dedico full a esto ;).

Carlos López

unread,
Nov 20, 2010, 12:04:42 AM11/20/10
to campus-...@googlegroups.com
Dale, dale!
Reply all
Reply to author
Forward
0 new messages