South's frozen models are big liars  March 07, 2013 at 02:53 PM
| Python, Django | View Comments  Consider South's orm object,,
which provides "frozen-in-time" versions of ORM models:  (Pdb++)
from my_app.models import MyModel (Pdb++) MyModel <class
'my_app.models.MyModel'> (Pdb++) orm['my_app.MyModel'] <class
'my_app.models.MyModel'> (Pdb++) orm['my_app.MyModel'] ==
MyModel  Notice that the magic South frozen model appears to be
in the same namespace as my real model: my_app.models!  This is
at best stupid, and at worst potentially dangerous.  It makes
perfect sense that South needs some mechanism for providing
"frozen models" (ie, which match the database schema at the time
of migration, of the current schema), but they are emphatically
not the same as the real models (don't have any of the real
methods, etc), so it should be made very clear that they are
different! There are many ways this could be done, but one very
simple step would be putting them in a different namespace,
which makes it clear that thes