2012-03-02 13 views
6

estoy escribiendo una migración de Django sur, que depende del modelo en otra aplicación, por lo que he incluido --freeze OTHERAPPNAME cuando me encontré python manage.py datamigration …Django-South DataMigration - Aplicación disponible en forwards() pero no al revés()?

Sin embargo, en la función forwards() puedo acceder a la otra modelo fino (con orm['otherappname.MyModelName']), sin embargo, en backwards() el paso (que también depende del modelo de otherappname), si intento acceder a la orm['otherappname.MyModelName'], me sale un error

*** KeyError: "The model 'mymodelname' from the app 'otherappname' is not available in this migration." 

puedo ver los detalles del modelo congelados en la parte inferior del archivo. ¿Por qué no puedo acceder a él?

NB: Este modelo se crea en otra migración dentro de otherappname del que depende esta migración de datos.

Respuesta

10

La migración hacia atrás realmente usa el ORM congelado de la migración anterior. Es lógico cuando lo piensas, pero no es muy intuitivo.

Moral: congele los modelos que necesitará en su migración de datos en el esquema de migración que procede.

Cuestiones relacionadas