Dopo aver letto la risposta di monokrome a Where should Django manager code live?, ho deciso di dividere un grande models.py
in file più piccoli e più gestibili. Sto utilizzando la struttura delle cartelleRefactor large model.py file nell'app Django
foodapp/
models/
__init__.py #contains pizza model
morefood.py #contains hamburger & hotdog models
In __init__.py
, importare i modelli da morefood.py
con
from morefood import hamburger, hotdog
Tuttavia, quando si esegue python manage.py syncdb
, l'unico tavolo creata è foodapp_pizza
- Di cosa ho bisogno per fai in modo che Django crei i tavoli per i modelli che ho importato da morefood.py
?
Ognuno ha idee diverse di quanto sia grande un file è "troppo grande, "ma in generale trovo che se un'app richiede il refactoring dei suoi models.py, ciò indica generalmente un'app che non sta facendo" una cosa sola "ed è l'app stessa che deve essere refactored in più app. Solo un pensiero. –
Entrambe le risposte di seguito funzionano bene. Preferisco che il kibitzer sembri leggermente in grado di tenere tutti i modelli nella cartella dei modelli. Terrò d'occhio il biglietto (http://code.djangoproject.com/ticket/6961) menzionato nel post del blog menzionato da Baresi. – Alasdair
@Carl - buon punto. In questo caso particolare, ho finito per dividere l'app in due. – Alasdair