如何在Django中分离我的模型?
我正在学习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