簡體   English   中英

Django在django-social-auth中出錯

[英]Django error in django-social-auth

我是Django的新手。 我正在我的應用程序中實現facebook身份驗證。 我在終端輸出中得到的錯誤是這樣的;

File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 350, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 324, in execute
    django.setup()
  File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/usr/local/lib/python2.7/dist-packages/social_auth/models.py", line 4, in <module>
    from django.utils.importlib import import_module
ImportError: No module named importlib 

我做錯了什么? 我新安裝的django-python-social是否正確安裝?

似乎django-social-auth已經與django 1.8有問題了,所以我不知道它是否與django 1.9有問題。 我建議使用django-allauth,因為它是社交網絡中使用最多/額定的包 ,並且它易於配置:

  1. pip install django-allauth
  2. settings.py配置

     TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, "templates")], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ .... "django.core.context_processors.request", # allauth specific context processors "allauth.account.context_processors.account", "allauth.socialaccount.context_processors.socialaccount", ], }, },] AUTHENTICATION_BACKENDS = ( # Default backend "django.contrib.auth.backends.ModelBackend", # `allauth` specific authentication methods, such as login by e-mail "allauth.account.auth_backends.AuthenticationBackend", ) INSTALLED_APPS += ( # The Django sites framework is required 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount', # Login Facebook provider 'allauth.socialaccount.providers.facebook', ) SITE_ID = 1 
  3. urls.py中添加:

     urlpatterns = patterns('', ... #Auth URLS url(r'^accounts/', include('allauth.urls')), ) 
  4. 最后應用數據庫遷移

  5. 運行服務器並轉到http://127.0.0.1:8000/admin/sites/site的管理界面,並為localhost,127.0.0.1:8000或您的網站域創建一個站點進行生產。 它的id應等於設置之前配置的SITE_ID。

  6. 配置您的Facebook應用程序以獲取密鑰,然后在http://127.0.0.1:8000/admin/socialaccount/socialapp創建Facebook社交應用程序

- >你也可能覺得這個tutoriel很有用

django-social-auth已被正式棄用,轉而使用python-social-auth。 所以你不應該使用它。 此外,導入錯誤很可能是由於與Django 1.9不兼容,因為django已經棄用了importlib。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM