[英]Getting name spaced models inside Django 1.7 migrations
我將django-allauth用作新項目的一部分,並且嘗試進行遷移,在該遷移中我為社交應用設置了初始身份驗證密鑰。
為此,我需要訪問位於以下名稱空間下的模型
'allauth.socialaccount',我在settings.py中也有
但是,當我嘗試執行以下操作時;
SocialApp = apps.get_model('allauth.socialaccount', 'socialapp')
我最終以Django告訴我該名稱的應用程序不存在。
我還嘗試了“ allauth”,“ socialaccount”和“ socialapp”的每種組合
在這一點上,我幾乎陷入了困境。
對於命名空間模型,您需要將虛線路徑的最后一部分用作app_label
。 對於allauth.socialaccount
,這是socialaccount
。
>>> apps.get_model('socialaccount', 'SocialApp')
allauth.socialaccount.models.SocialApp
另外,不要忘了將來自socialaccount
應用程序的遷移引用為依賴項,否則它將不可用:
dependencies = [
# ('some_app', 'XXXX_some_pre-requisite_migration'),
('socialaccount', '0001_initial'),
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.