[pyar] [django] Mejor forma de renderear distintos tipos un Modelo.

Javier Marcon javiermarcon en gmail.com
Mie Sep 17 12:50:14 ART 2014


El 17/09/14 a las 11:47, Julo Waks escibió:
> Buen día lista!
> Despues de mucho lidiar con este problema decidí compartirlo con
> mentes frescas para conseguir una nueva perspectiva.
>
> Situación:
> En el proyecto tenemos un modelo que es Promo, que a su vez tiene
> distintos tipos de promos (modelos con FK a Promo) y esos tipos de
> promo son distintos y son los que definen como que cosas deberían ser
> mostradas.
> Actualenmente, cuando el usuario accede a /promo/1/,  lo que hacemos
> es if anidados preguntando por el tipo de promo y seteando en ese
> momento el template_name y un o_promo(modelo del tipo de promocion)
> Evidentemente este diseño no es muy escalable porque si algun día hay
> 10 tipos de promos, tener 10 if's anidados no es lo más pythonico.
> La solución que encontre es definir en el modelo de Promo un metodo
> que sea get_promo_handler() y devuelva una clase de acuerdo al tipo de
> promo que es y que esa promo tenga metodos como render() ó  otros
> metodos necesaarios para la logica del proyecto (generar cupones,
> saber si la promoción esta finalizada, etc.)
>
> El codigo de ejemplo esta aca [0]
>
No vi tu codigo, pero por lo que expones, para mi lo mejor sería hacer
una factory:

http://python-3-patterns-idioms-test.readthedocs.org/en/latest/Factory.html

saludos,

Javier.

-- 
Tener un matrimonio sin sexo activo es como tener un tambo que no produce leche.



More information about the pyar mailing list