創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
這篇文章將為大家詳細(xì)講解有關(guān)django中不同app共用數(shù)據(jù)模型的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
django的每個app目錄下,都有自己的models.py文件。
原則上,每個app涉及的數(shù)據(jù)庫,都會定義在這個文件里。
但是,有的數(shù)據(jù)庫,涉及到多個app應(yīng)用,不是很方便放在一個單獨的app里。
這時,我往往會新建一個public app,然后,將這個目錄的modles.py里放置這些數(shù)據(jù)庫,
可是,這樣又顯得太分散了。
所以,有時也會考慮單獨新建一個cmdb這樣的app,將所有models數(shù)據(jù)庫文件放在這個app下定義。
那這樣操作,會帶來一個問題,就是默認(rèn)django源代碼時寫死了,一個app只能有一個models.py文件。
如果在app下放多個不同的models.py文件(用前綴或后綴區(qū)分),
使用python manage.py makemigrations命令時,django不能感知到其它的models.py文件。
而我當(dāng)然想將不同的應(yīng)用分不同的models.py文件放了。
那如何擴展呢?
以下是如何實現(xiàn)的:
1,刪除cmdb的app目錄下默認(rèn)的models.py文件。
2,在cmdb的app目錄下新建一個models文件夾。
3,在models文件夾時,按不同的應(yīng)用,建立不同的models.py文件(用前綴或后綴區(qū)分)。
4,在models文件夾下新建一個__init__.py文件,將所有的此目錄下的models.py里的model導(dǎo)入。
5,再次運行python manage.py makemigrations,django就能感知到這些文件了。
6,寫admin.py時,導(dǎo)入models文件夾下的內(nèi)容,即可。
在此,再總結(jié)一下admin.py里的@admin.register裝飾,同時應(yīng)用在多個models上時的寫法。
@admin.register(BaseImage, MiddleImage, DeployImage, DeployConfig) class BaseImage(admin.ModelAdmin): pass class MiddleImage(admin.ModelAdmin): pass class DeployImage(admin.ModelAdmin): pass class DeployConfig(admin.ModelAdmin): pass
關(guān)于django中不同app共用數(shù)據(jù)模型的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享題目:django中不同app共用數(shù)據(jù)模型的方法-創(chuàng)新互聯(lián)
URL分享:http://sd-ha.com/article36/dceipg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、服務(wù)器托管、網(wǎng)站內(nèi)鏈、靜態(tài)網(wǎng)站、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容