web-dev-qa-db-ja.com

Django:SocialAppマッチングクエリが存在しません

Django-allauthで問題が発生しています。

localhost:9000/admin/以下の詳細

socialapp。

プロバイダー:名前:クライアントID:アプリID、またはコンシューマーキーキー:シークレット:など。

SITE_ID = 2を設定しました(デフォルトのサイトexample.comをlocalhost:9000に変更したため)

In setting.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'} }

さて、URL http://localhost:9000/accounts/facebook/login

エラーが発生します:SocialApp matching query does not exist.

ここで私が間違っていることを教えてください。

28
masterofdestiny

Django adminを使用して、Facebookアプリの認証情報をリストするSocialAppを作成する必要があります。このアプリが適切なサイト(Django.contrib.sites.models.Siteなど)に接続されていることを確認してください。

あなたのケースでは、SocialAppのサイトとしてリストされているid = 2のDjango.contrib.sites.models.Siteインスタンスが必要です(サイト管理者を確認してください)。

SocialAppがないか、作成されたがsettings.SITE_IDに一致するサイトに関連付けられていない場合、allauthはどのアプリを選択すべきかわからないため、上記のエラーメッセージが表示されます。

51
pennersr