如何在django中分离我的模型?

时间:2011-04-04 03:06:18

标签: python django django-models split

我正在尝试学习python / django。

现在,我将所有模型都放在models.py

是否可以将我的模型分解出来,以便我可以在单独的模型文件夹中为每个模型创建一个文件,以便我可以执行以下操作:

  

〜/ myproject的/ MyApp的/模型/ user.py   〜/ myproject的/ MyApp的/模型/ group.py

由于

3 个答案:

答案 0 :(得分:44)

可以确保导入您在__init__.py目录中的models中创建的所有模型。在你的情况下,它看起来像这样:

# __init__.py
from .user import UserModel
from .group import GroupModel

这需要完成,因为Django在app.models查找应用的模型。

正如其他人所提到的,对于1.7之前的Django版本,您还需要在模型中app_label类的Meta属性中指定您的应用名称:

class UserModel(models.model):
    # fields here

    class Meta:
        app_label = "myapp"

http://docs.djangoproject.com/en/1.7/ref/models/options/#app-label

答案 1 :(得分:4)

你可以有一个名为“models”的文件夹,但是在每个模型类中你需要包含:

class Meta:
    app_label="appname goes here"

* PS。不要忘记像我一直这样的__ init__.py文件。*

答案 2 :(得分:-1)

如果您不知道app_label的名称是什么。 您可以尝试以下方法:

class UserModel(models.model):
    # fields here

    class Meta:
        abstract = True