【问题标题】:django-allauth facebook integration not workingdjango-allauth facebook 集成不起作用
【发布时间】:2014-07-23 02:31:31
【问题描述】:

我收到以下错误。

未找到带有参数“()”和关键字参数“{}”的“facebook_channel”的反向操作。尝试了 0 个模式:[]

下面一行是红色的。

{% providers_media_js %} 

这些是我在 local_settings.py 中的设置

SOCIALACCOUNT_PROVIDERS = \
{'facebook':
    {'SCOPE': ['email', 'publish_stream'],
     'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
     'METHOD': 'js_sdk',
     'LOCALE_FUNC': lambda request: 'en_GB',
     'VERIFIED_EMAIL': False}}

SOCIALACCOUNT_QUERY_EMAIL = True

settings.py

SITE_ID = 1

AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
# `allauth` specific authentication methods, such as login by e-mail
'allauth.account.auth_backends.AuthenticationBackend',
)


TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.request',
# allauth specific context processors
'allauth.account.context_processors.account',
'allauth.socialaccount.context_processors.socialaccount',
)

THIRD_PARTY_APPS = (
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook',
'suit',
'debug_toolbar',
'south',
'crispy_forms',
'haystack',
'taggit',
'bootstrapform',
'sorl.thumbnail',
)

是的,我已经完成了模型迁移,我有 allauth 创建的四个表。

任何帮助将不胜感激,这已经困扰了我一段时间。

更新

主 urls.py

from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.conf import settings

admin.autodiscover()

urlpatterns = patterns('',
                   url(r'^admin/', include(admin.site.urls)),
                   url(r'^accounts/', include('useraccount.urls')),
                   url(r'^directory/', include('directory.urls')),
                   ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

urlpatterns += staticfiles_urlpatterns()
urlpatterns += url(r'', 'directory.views.home', name='home'),

if settings.DEBUG:
import debug_toolbar

urlpatterns += patterns('',
                        url(r'^__debug__/', include(debug_toolbar.urls)),
                        )

更新

用户帐户应用程序中的 urls.py

from django.conf.urls import patterns, url, include
from django.contrib.auth.decorators import login_required, permission_required
from useraccount.views import AccountView, ProfileUpdateView, ProfileDetailView


urlpatterns = patterns('',
                   (r'^logout', 'django.contrib.auth.views.logout', {'next_page': 'directory_home'}),
                   url(r'^profile/(?P<pk>\w+)', ProfileDetailView.as_view(), name='useraccount_profile'),
                   url(r'^edit', login_required(ProfileUpdateView.as_view()), name='useraccount_edit'),
                   url(r'^dashboard', login_required(AccountView.as_view()), name='useraccount_dashboard'),
                   url(r'', include('allauth.account.urls')),
                   )

【问题讨论】:

  • 您是否在该模板中调用{% load socialaccount %}
  • 不,我只是复制了默认的 login.html 模板。我会尝试加载。
  • 我猜这有效吗?
  • 很抱歉没有机会这样做...C# 日常工作。我回家后会做,但我很有希望。谢谢会更新你。
  • 如果你用 url(r'^accounts/', include('allauth.urls')) 替换 url(r'^accounts/', include('useraccount.urls'))修好吗?

标签: django django-allauth


【解决方案1】:

你需要在你的 url conf 中包含正确的 allauth url

url(r'', include('allauth.urls'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 2013-06-20
    • 2019-06-26
    • 2018-12-29
    • 2018-08-27
    • 1970-01-01
    • 2021-04-21
    相关资源
    最近更新 更多