我正试图学习python/django。如何在django中分离出我的模型?
现在,我有我的所有车型在models.py
是否有可能有我的模型爆发了,这样我可以有每个模型的单个文件在一个单独的模型文件夹,以便我可以做是这样的:
〜/ myproject的/ MyApp的/型号/ user.py 〜/ myproject的/ MyApp的/型号/ group.py
感谢
我正试图学习python/django。如何在django中分离出我的模型?
现在,我有我的所有车型在models.py
是否有可能有我的模型爆发了,这样我可以有每个模型的单个文件在一个单独的模型文件夹,以便我可以做是这样的:
〜/ myproject的/ MyApp的/型号/ user.py 〜/ myproject的/ MyApp的/型号/ group.py
感谢
这是可能的,只需确保在models
目录中导入您在__init__.py
中创建的所有模型。在你的情况下,它应该是这样的:
# __init__.py
from user import UserModel
from group import GroupModel
这需要做的事情,因为Django就在app.models
一个应用程序的模型。
正如其他人所提到的,Django的版本之前到1.7,你还需要在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
你可以有一个所谓的“模型”,但文件夹,然后在每个模型类,你将需要包括:
class Meta:
app_label="appname goes here"
* ps。不要忘记像我一直这样做的__init__.py文件。*
我们不能使用一些继承吗?用类Meta定义一些base_model.py,然后这应该为该类的所有衍生物做? – 2016-04-27 16:59:59
这使我疯狂,所以对于那些后来的人来说,在1.10中需要有一个'。':'.user'导入UserModel'。如上所述: https://docs.djangoproject.com/en/1.10/topics/db/models/#organizing-models-in-a-package – 2017-02-22 17:37:53