[pyar] [Discusión] Django y Single Responsability Pattern

Ariel Camino arielcamino en gmail.com
Lun Jul 28 17:03:49 ART 2014


El 28/07/14 16:52, Jose Selesan escribió:
> Buenas gente!. Estoy leyendo sobre Django (empecé por Django, si no me
> gusta veré Flask o algún otro web framework) y una de las primeras cosas
> que me llamó la atención es que los modelos son más bien modelos de
> datos, ya que especifican los campos y heredan el comportamiento para
> almacenar en la base de datos. 
> 
> Ahora bien, en los ejemplos que vi, desde la vista misma (ya sea una
> Class View o una función) se persisten las entidades. Esto está bien en
> ejemplos sencillos, pero en casos más complejos, ¿no viola el principio
> de responsabilidad única? Por ejemplo cuando creo una factura, debo
> hacer las validaciones de negocios (que el cliente tenga saldo, que haya
> stock suficiente, etc), actualizar el stock de los productos, actualizar
> el saldo del cliente y persistir la factura con sus items. ¿Donde ponen
> ese código? ¿En la vista? ¿O se crea una clase de de servicio como suele
> usarse en Java o .Net?
> 
> José
> 
> 
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
> 
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> 
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
> 

Hola José, la vista no tiene que tener esa responsabilidad, podes
escribir un método en la clase que representa el modelo que después
llame a save, o podes sobreescribir el save (de models.Model) para hacer
dichas cosas antes y después de guardar según corresponda:

https://docs.djangoproject.com/en/dev/topics/db/models/#overriding-model-methods

Saludos,

Ariel


More information about the pyar mailing list