[英]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.