J'utilise South pour le schéma et la migration de données pour mon site Django. Je suis content de l'utiliser. Un jour, j'ai converti le fichier models.py
en models/__init__py
et mis quelques modèles supplémentaires au models/something.py
. Lorsque j'ai couru python manage.py schemamigration app --auto
, j'ai reçu le message Nothing seems to have changed.
malgré les nouvelles classes au something.py
. Si je les ai copiés dans le fichier __init__py
, South a reconnu les nouveaux modèles. J'ai essayé d'importer tout de something
dans le haut de __init__py
, mais pas de changement.Sud ne reconnaît pas les modèles lorsqu'il s'agit d'un package
8
A
Répondre
17
C'est la conception de Django. Django ne sélectionne pas du tout vos modèles, vous devez définir app_label
dans la classe Meta de votre modèle.
Voir le ticket au Automatically discover models within a package without using the app_label
Meta attribute.