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

44 投票
3 回答
32183 浏览
提问于 2025-04-16 15:01

我正在学习Python和Django。

现在,我把所有的模型都放在了models.py这个文件里。

我想知道,能不能把这些模型分开,每个模型放一个文件,放在一个单独的models文件夹里,这样我就可以像这样组织:

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

谢谢!

3 个回答

0

在模型文件夹里,你需要创建一个叫做 __init__.py 的文件,然后在里面导入你的类。比如说,你的路径是 myproject/myapp/models/__init__.py,你可以这样写: from .myfile import myclass

5

你可以创建一个叫做 models 的文件夹,但在每个模型类里,你需要包含以下内容:

class Meta:
    app_label="appname goes here"

顺便说一下,别忘了像我一样加一个 __ init__.py 文件。

77

这是可以做到的,只要确保在你的 models 文件夹里的 __init__.py 文件中导入你创建的所有模型。对于你的情况,应该像这样:

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

这样做是因为 Django 会在 app.models 中查找应用的模型。

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

class UserModel(models.model):
    # fields here

    class Meta:
        app_label = "myapp"

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

撰写回答