Получение моделей с пространством имен в миграциях Django 1.7
Я использую django-allauth как часть нового проекта, и я пытаюсь выполнить миграцию, где я установил начальные ключи аутентификации для социальных приложений.
Для этого мне нужно получить доступ к модели, которая находится в пространстве имен
'allauth.socialaccount', который я также имею в своем settings.py
Тем не менее, когда я пытаюсь сделать следующее;
SocialApp = apps.get_model('allauth.socialaccount', 'socialapp')
Я заканчиваю тем, что Джанго говорит мне, что приложение с таким именем не существует.
Я также попробовал почти все комбинации "Аллах", "Socialaccount" и "Socialapp"
Я в значительной степени застрял в этой точке.
1 ответ
Для моделей с пространством имен вам необходимо использовать заключительную часть пунктирного пути в качестве 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'),
]