我遇到了django allauth和i18n的一些问题。我在我的i18n网址中有帐户,因此它在网址后面有一个语言代码...
这很好用,它允许我像我想要的那样翻译帐户页面中的内容,我遇到的问题是,当我尝试进行社交登录时,特别是谷歌,帐户重定向URI包括语言代码...
/en/accounts/google/login/callkback
这会导致404,因为我在Google重定向URI上没有该路径。到目前为止,我能看到的唯一解决方案是在i18n之外添加帐户网址并失去翻译它的能力,或者专门添加我在谷歌重定向URI中提供的每种语言,这可能是乏味的,可能不会提供其他社交服务提供商...
我该怎么办?
答案 0 :(得分:1)
您只需使用urlpatterns
向patterns
添加allauth,然后使用i18n_patterns
添加到其他网址,以便django不会添加语言前缀到了allauth网址。
这是我的样子(我使用的是python社会认证,但原理相同):
urlpatterns = patterns ('',
url('', include('social.apps.django_app.urls', namespace='social')),
)
urlpatterns += i18n_patterns('',
url(r'^', include('main.urls')),
url(r'^', include('helpcenter.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^search/', include('search.urls')),
url('', include('django.contrib.auth.urls', namespace='auth')),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += staticfiles_urlpatterns()
您可以看到我在将网址添加到其他应用之前单独添加了python social auth url