我正試圖學習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