2013-03-14 12 views
17

django-allauth bir sorunla karşılaşıyorum. Django: SocialApp eşleşen sorgu mevcut değil

aşağıdaki ayrıntıları

socialapp ile localhost:9000/admin/ yapılandırılmış.

sağlayıcı: Adı: Müşteri id: Uygulama Kimliği veya tüketici anahtarı Anahtar : Gizli: vb. Ben http://localhost:9000/accounts/facebook/login

Ben Hata alıyorum url gidiyorum Şimdi ne zaman

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'} } 

:

Ben SITE_ID = 2 (9000 varsayılan sitesi example.com değişti Çünkü localhost): set SocialApp matching query does not exist.

Lütfen bana burada neyin yanlış olduğunu öğrenmeme yardım edin.

cevap

37

Django yöneticisini kullanarak Facebook uygulamanızın kimlik bilgilerini içeren bir SocialApp listesi oluşturmanız gerekir. Bu uygulamanın uygun siteye bağlı olduğundan emin olun (django.contrib.sites.models.Site'da olduğu gibi).

Sizin durumunuzda, SocialApp için site olarak listelenen id = 2 (site yöneticilerine bakın) ile bir django.contrib.sites.models.Site örneği olması gerekir.

ya SocialApp eksik ya da oluşturuldu ancak değilse eşleşen bir sitede bağlıysa sizin settings.SITE_ID, ardından allauth yukarıda listelenen hata mesajı ile sonuçlanan, almak ne uygulama bilmiyor.

+0

teşekkürler yazar django.contrib.sites.models.Site satırı eksik – masterofdestiny

+6

SITE kimliğimi göstermek için yönetici panelini alamadım, bu yüzden onu bir kabukta yükledim: 'django.contrib.sites.models Siteyi içe aktar ve listeyi görmek için bir 'Site.objects.all()' yaptı. 'Site.objects.get (id = 2)' aslında örnek olarak ayarlanmıştı, bu yüzden ayarlarımı 3 olarak değiştirdim, bu benim localhost'umun ayarlandığı şeydi. –

+0

Testte bu hatayı alıyorum. Bu bana sorun için bir ipucu verdi. Kurulumunuzda allauth.utils import get_current_site adresinden allauth.socialaccount.models ithalatını eklemeniz gerekir SocialApp sa = SocialApp.objects.create (name = 'Facebook', provider = 'facebook') sa.sites.add (get_current_site ()) Yukarıdaki –