[pyar] Separación de lógica y presentación en Django

Hystrix ego en hystrix.com.ar
Mar Sep 7 20:53:58 ART 2010


2010/9/7 Federico Heinz <fheinz en vialibre.org.ar>:
> Estoy haciendo una página en la que tengo un template más o menos
> como este:
>
> <table>
>  <tr>{% for foo in bar %}
>        <td class="SOMETHING">{{foo.name}}</td>
>      {% endfor %}
>  </tr>
> </table>
>
> Lo que va en SOMETHING es un string que se calcula a partir de
> foo.type, que es un IntegerField con "choices". La idea es que el
> estilo del TD cambie de acuerdo al tipo de foo que se trate.

En Django lo podes hacer de muchas formas, desde ponerle un metodo al
model como dijiste hasta escribirte un filtro como te sugirieron,
pasando por agregar el atributo en la vista.
Supongo que la eleccion depende mas de que tan complejo sea lo que
necesitas y cuanto dependa de los datos puros del objeto.
Si fuera un derivado directo de un dato del objeto (por ejemplo, si
una persona es nene o nena) no me parece mal que este en el modelo.
Si es algo mas lejano al objeto o que involucra datos de otros
objetos(por ejemplo si es amigo del usuario logeado en ese momento) se
puede agregar en la vista.
Y si es algo puramente de presentacion podes hacer un filtro que, tal
vez, tambien te sirva para resolver temas similares con otro tipo de
objetos en otros lados.
Tenes para elegir.

-- 
Hystrix



More information about the pyar mailing list