Django: соответствующий запрос SocialApp не существует

Я использую django-allauth и настроил localhost:9000/admin/ со следующими данными:

socialapp .
provider:
Name:
Client id:
App ID, or consumer key
Key:
Secret:  etc .

Я установил SITE_ID = 2 (потому что я изменил сайт по умолчанию example.com на localhost:9000)

В настройках.py:

   INSTALLED_APPS = (
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.sites',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'django.contrib.admin',
        'uni_form',
        'allauth',
        'allauth.account',
        'allauth.socialaccount',
        'bootstrapform',
        # 'allauth.socialaccount.providers.twitter',
        # 'allauth.socialaccount.providers.openid',
         'allauth.socialaccount.providers.facebook',
    )
    SOCIALACCOUNT_PROVIDERS = \
        { 'facebook':
            { 'SCOPE': ['email', 'publish_stream'],
              'AUTH_PARAMS': { 'auth_type': 'reauthenticate' },
              'METHOD': 'oauth2' ,
              'LOCALE_FUNC': 'path.to.callable'} }

Когда я иду в:

http://localhost:9000/accounts/facebook/login

Я получил:

Error :  `SocialApp matching query does not exist.

Что я делаю не так?


person masterofdestiny    schedule 14.03.2013    source источник


Ответы (4)


Используя админку Django, вам нужно создать SocialApp список учетных данных вашего приложения Facebook. Убедитесь, что это приложение подключено к правильному сайту (например, django.contrib.sites.models.Site).

В вашем случае должен быть экземпляр django.contrib.sites.models.Site с id=2 (проверьте администратора сайта), который указан как сайт для SocialApp.

Если SocialApp отсутствует или если он создан, но не привязан к сайту, соответствующему вашему settings.SITE_ID, то allauth не знает, какое приложение выбрать, что приводит к сообщению об ошибке, которое вы указали выше.

person pennersr    schedule 15.03.2013
comment
спасибо автор мне не хватало строки django.contrib.sites.models.Site - person masterofdestiny; 15.03.2013
comment
Я не мог заставить панель администратора отображать идентификатор моего САЙТА, поэтому я загрузил его в оболочке: from django.contrib.sites.models import Site и сделал Site.objects.all(), чтобы увидеть список. Site.objects.get(id=2) на самом деле был установлен для примера, поэтому мне пришлось изменить свои настройки на 3, что было установлено на моем локальном хосте. - person Adam Starrh; 25.11.2015
comment
Я получил эту ошибку в тестировании. Это дало мне ключ к проблеме. В вашей настройке вы должны добавить из allauth.utils import get_current_site из allauth.socialaccount.models import SocialApp sa = SocialApp.objects.create(name='Facebook', provider='facebook') sa.sites.add(get_current_site( )) - person Nancy Poekert; 16.04.2016
comment
Дополнение к вышеизложенному. Мне также пришлось добавить фактический client_id и секрет моего приложения для проверки входа в систему тестового пользователя Facebook. - person Nancy Poekert; 16.04.2016
comment
@AdamStarrh, чтобы увидеть идентификатор сайта в панели администратора, просто добавьте admin.site.unregister(Site), затем class SiteAdmin(admin.ModelAdmin): list_display = ('id', 'domain', 'name') и, наконец, admin.site.register(Site, SiteAdmin) в файл admin.py. - person Mike O'Connor; 09.02.2017
comment
Я делаю так: user$ python manage.py shell. Затем из интерактивной подсказки я ввожу следующие две команды: >>> from django.contrib.sites.models import Site, а затем >>> sorted([(site.id,site.name) for site in Site.objects.all()]). Вывод выглядит так: [(1, u'www.lvh.me'), (2, u'example.com'), (3, u'www.example.com'), (4, u'example.com:80'), (5, u'www.example.com:80')] - person NYCeyes; 03.10.2017

Для меня это показало эту ошибку, когда у меня было в settings.py:

SITE_ID = 1

Это сработало, когда я изменил его на 2:

SITE_ID = 2
person subodhk    schedule 04.11.2019

В моем случае на странице Добавить социальное приложение я забыл выбрать свой сайт как "Chosen sites" ????????♂️

См. снимок экрана ниже (справа внизу список выбранных сайтов): < img src="https://i.sstatic.net/fKk8P.png" alt="введите здесь описание изображения" />

person Deep    schedule 12.03.2020

Шаг 1. Перейдите на страницу администратора. Найдите social application

введите здесь описание изображения

Шаг 2. Теперь добавьте строки, как показано на следующем рисунке. Укажите свой идентификатор клиента и секретный ключ, предоставленный Google API, и переместите available site (example.com) в chosen sites введите здесь описание изображения

Шаг 3. Теперь перейдите к sites в боковой панели навигации на странице администрирования, настройте, как показано на следующем изображении, и сохраните его

введите здесь описание изображения

Шаг 4. Теперь добавьте SITE_ID = 1 в файл settings.py.

person Sayad Ahmed Shaurov    schedule 25.10.2020
comment
Это сработало, большое спасибо! :) - person user3286381; 30.05.2021