Получение моделей с пространством имен в миграциях 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'),
]
Другие вопросы по тегам