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

joh*_*ohn 29 python django split django-models

我正在尝试学习python/django.

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

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

〜/ myproject/myapp/models/user.py~/myproject/myapp/models/group.py

谢谢

Joh*_*ebs 46

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

# __init__.py
from .user import UserModel
from .group import GroupModel
Run Code Online (Sandbox Code Playgroud)

这需要完成,因为Django正在寻找app.models应用程序的模型.

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

class UserModel(models.model):
    # fields here

    class Meta:
        app_label = "myapp"
Run Code Online (Sandbox Code Playgroud)

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

  • 这让我发疯,所以对于那些后来的人来说,在 1.10 中需要有一个“.”:“from .user import UserModel”。正如这里提到的:https://docs.djangoproject.com/en/1.10/topics/db/models/#organizing-models-in-a-package (2认同)

Jam*_*ury 5

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

class Meta:
    app_label="appname goes here"
Run Code Online (Sandbox Code Playgroud)

*ps。不要像我一样忘记 __ init__.py 文件。*