[pyar] South se confunde cuando le cambio el nombre a una property?
Federico Heinz
fheinz en vialibre.org.ar
Jue Sep 9 01:39:34 ART 2010
Le metí South a un proyecto que estoy haciendo, y venía bárbaro.
Resulta que me encontré con que tenía que agregarle comportamiento a
la asignación a un campo ForeignKey. "No problemo", me dije,
¡properties al rescate! La clase original era
class Foo(models.Model):
bar = models.ForeignKey('Bar')
lo que con la danza de las properties queda así
class Foo(models.Model):
_bar = models.ForeignKey('Bar', db_column="bar_id")
@property
def bar(self):
return self._bar
@bar.setter
def bar(self, value):
self._bar = value
self.hacer_algo_mas()
Todo anda perfecto... salvo por South. Pese a que los cambios sólo
afectan el lado Python de la cosa, y la base de datos no cambió
nada, South insiste en borrar la columna foo.bar_id de la base,
para inmediatamente agregarla de nuevo (obviamente, perdiendo el
contenido original en el proceso).
¿Hay forma de decirle a South "no te vuelvas loco, este cambio no
modifica la base de datos"?
Se me ocurre que podría decirle que genere la migración, editarla a
mano para que no haga macanas (básicamente, cambiar el contenido de
Migration.forwards y Migration.backwards por 'pass'), y de esa manera
convencer a South de que hizo el trabajo, pero ¿es ese el
procedimiento recomendado por 9 de cada 8 odontólogos que
programan en Django?
Fede
More information about the pyar
mailing list