django-social-auth 中的 Django 错误

2024-04-08

我是 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 社交身份验证已经有issues https://github.com/omab/django-social-auth/issues/833使用 django 1.8,所以我不知道 django 1.9 是否有问题。我会推荐使用Django-allauth https://github.com/pennersr/django-allauth因为它是最使用/额定包装 https://www.djangopackages.com/grids/g/social/对于社交网络,配置很容易:

  1. pip install django-allauth
  2. 设置.py config

    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. in urls.py add:

    urlpatterns = patterns('',
        ...
        #Auth URLS
        url(r'^accounts/', include('allauth.urls')),
    )
    
  4. 最后应用数据库迁移

  5. 运行服务器并转到管理界面http://127.0.0.1:8000/admin/sites/site http://127.0.0.1:8000/admin/sites/site并创建一个站点 本地主机 127.0.0.1:8000 或您的网站域 生产。它的 id 应该等于配置的 SITE_ID 之前在设置中。

  6. 配置您的 Facebook 应用程序以获取密钥,然后为 Facebook 创建社交应用程序:http://127.0.0.1:8000/admin/socialaccount/socialapp http://127.0.0.1:8000/admin/socialaccount/socialapp

--> 你可能还会发现这个tutoriel http://www.techstricks.com/django-allauth-tutorial-step-by-step/ useful

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django-social-auth 中的 Django 错误 的相关文章

随机推荐