Contribute Media
A thank you to everyone who makes this possible: Read More

Adelgazando los modelos de Django

Description

Probablemente empezaste creando una aplicación de Django que podía presumir de "limpia". Tus modelos tienen un par de métodos añadidos, con lógica sencilla. Tus vistas hacen consultas simples y devuelven templates con un contexto razonable.

Con el tiempo, los modelos empiezan a cambiar, necesitas hacer vistas que devuelven contextos con datos más complejos, aumenta la cantidad de métodos en los modelos, las vistas empiezan a implementar lógica y, ahora que lo piensas, puedes reutilizar esa función, así que la sacas a un módulo de utilidades, quizá lo decides bautizar como controlador.

Después de todas esas fantásticas nuevas features que has conseguido implementar, tienes modelos de cientos de líneas, lógica desparramada en varios ¨controladores" que importas en tantos módulos que, cada vez que creas uno nuevo, optas por copiar y pegar los import de siempre. Ah, y cada vista tienen más lógica que tu trabajo fin de carrera. ¿En cual de los "controladores" estaba esa función que te da una lista de ids y nombres de usuarios con datos sobres sus vehículos y sus casas? ¿En el controlador de usuarios, el de vehículos, el de casas o el controlador de controladores?

No te preocupes, hay varias soluciones. Nosotros te proponemos la que utilizamos en StyleSage, basada en una clara división de responsabilidades entre modelos, proxy models, managers y vistas. Verás como lo encuentras todo a la primera, ¡Y sin dependencias circulares!

Presentación disponible en http://slides.com/hectorpablos/adelgazando-modelos-django

http://2016.es.pycon.org/

Improve this page