我正在尝试学习python / django。
现在,我将所有模型都放在models.py
中是否可以将我的模型分解出来,以便我可以在单独的模型文件夹中为每个模型创建一个文件,以便我可以执行以下操作:
〜/ myproject的/ MyApp的/模型/ user.py 〜/ myproject的/ MyApp的/模型/ group.py
由于
答案 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