[pyar] Setter para model properties [era: Re: South se confunde cuando le cambio el nombre a una property?]

Federico Heinz fheinz en vialibre.org.ar
Jue Sep 9 02:37:38 ART 2010


On 09/09/2010, Federico Heinz wrote:
> Todo anda perfecto...

Creo que ese "todo" fue exagerado. No *todo* anda perfecto. Lo que
anda bien:

   * si f es un Foo, y b es un Bar, f.bar = b hace justo lo que
     quiero: actualiza el campo, y ejecuta el comportamiento adicional
   * cuando leo Foos de la base de datos, el comportamiento adicional
     no se ejecuta. Esto es perfecto, porque ese comportamiento sólo
     debe ocurrir cuando asigno un nuevo valor a f.bar

Lo que *no* anda bien:

   * cuando un Form sobre una instancia de Foo intenta cambiar el
     valor del foreign key, en realidad asigna a f._bar, no a f.bar,
     con lo que *no* se ejecuta el comportamiento adicional. Todo mal.

Hmmm... parece que esto merece un poco más de seso. Veo que hay un
ticket sobre esta misma idea[1] de hace cuatro años, por lo visto
asignado y aceptado, con parche y todo (aunque también con "patch
needs improvement", pero que no parece haber sido integrado al
sistema. Al menos, el documento de referencia de Model no menciona
nada parecido.

Sin embargo, lo que estoy tratando de hacer me parece tan elemental,
que me imagino que debe haber algún mecanismo generalmente aceptado
de hacerlo. ¿Cuál es?

	Fede

[1] <http://code.djangoproject.com/ticket/3148>



More information about the pyar mailing list