2014-06-06 5 views
0

J'ai un assez gros projet django qui a beaucoup d'applications et beaucoup de modèles. Afin d'éviter des importations circulaires plusieurs modules modèles doivent être utilisés:Emplacement des modèles personnalisés du sud

app/models.py 
app/models_add.py 
app/models_aux.py 

et ainsi de suite. Chaque fois que je dois faire une migration je dois écrire

from app.models_add import Model 

dans l'application/models.py pour que du Sud pour suivre les changements du modèle. Cela semble être assez ennuyeux car il y a beaucoup de changements dans les modèles. La question est: existe-t-il un moyen de pointer vers le sud quels modules/fichiers suivre?

+1

Pourquoi ne pas essayer de restructurer le projet de la façon dont aucune importation circulaire n'est présentée? – sepulchered

Répondre

1

Vous pouvez essayer de définir l'app_label sur la classe Meta de votre modèle.

class Meta: 
    app_label = "app" 

Essayez aussi la configuration de votre structure de répertoire:

app/models/__init__.py 
app/models/add.py 

Cela devrait tout dire pour initialiser correctement. C'est ce que j'ai fait récemment, mais pour la rétrocompatibilité dans d'autres domaines de mon projet, j'importe tout dans models/__init__.py

+0

Je suppose que je dois prendre votre solution. Merci. –

+0

J'ai 'models/__ init __. Py', mais le sud semble ignorer tous les modèles définis dans' models/*. Py'. Des indices? – WhyNotHugo

Questions connexes