代码之家  ›  专栏  ›  技术社区  ›  Alasdair

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

  •  8
  • Alasdair  · 技术社区  · 16 年前

    读了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为从中导入的模型创建表,我需要做什么? 更多食物 ?

    2 回复  |  直到 9 年前
        1
  •  3
  •   kibitzer    16 年前

    或者,在morefood.py模型中,向meta添加以下内容:

    class Meta:
        app_label = 'foodapp'
    

    然后,同步数据库将与您现有的结构一起工作

        2
  •  7
  •   Tony    9 年前

    试试这个:

    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 .