После прочтения ответа монокром на Where should Django manager code live?, я решил разбить большой models.py
на более мелкие и более управляемые файлы. Я использую структуру папокФайл с файлами refactor large models.py в приложении Django
foodapp/
models/
__init__.py #contains pizza model
morefood.py #contains hamburger & hotdog models
В __init__.py
я импортировать модели из morefood.py
с
from morefood import hamburger, hotdog
Однако, когда я бегу python manage.py syncdb
, единственная таблица, созданный foodapp_pizza
- Что мне нужно сделать, чтобы Django создавал таблицы для моделей, которые я импортировал из morefood.py
?
Каждый человек имеет разные представления о том, насколько большой файл «слишком большой », но в целом я обнаружил, что если приложение требует рефакторинга своих моделей.py, это обычно указывает на приложение, которое не делает« только одну вещь », и это самое приложение, которое нужно реорганизовать в несколько приложений. Просто мысль. –
Оба ответы ниже хорошо работают. Я предпочитаю, чтобы kibitzer слегка одобрял, что я могу хранить все модели в папке моделей. Я буду следить за билетом (http://code.djangoproject.com/ticket/6961), упомянутым в сообщении в блоге, о котором упоминает Барези. – Alasdair
@ Карл - хорошая точка. В этом конкретном случае я закончил разделение приложения на два. – Alasdair