在Django应用程序中重构大型models.py文件

时间:2009-12-11 00:04:14

标签: django django-models

在阅读了monokrome对Where should Django manager code live?的回答之后,我决定将大models.py分成更小,更易于管理的文件。我正在使用文件夹结构

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导入的模型创建表?

2 个答案:

答案 0 :(得分:7)

试试这个:

foodapp/
    __init__.py
    models.py
    /morefood
        __init__.py
        hamburger.py
        hotdog.py

并在models.py中执行此操作:

from foodapp.morefood.hamburger import *
from foodapp.morefood.hotdog import *

,如this blogpost中所述。

答案 1 :(得分:3)

或者,在您的morefood.py模型中,将以下内容添加到Meta:

class Meta:
    app_label = 'foodapp'

然后syncdb将与您现有的结构一起使用