国际化之前或之后的 django allauth 帐户?
django allauth accounts before i18n or after?
我 运行 遇到 django allauth 和 i18n 的一些问题。我在 i18n urls 中有帐户,因此它在 url...
之后有一个语言代码
这很好用,它允许我按照自己的意愿翻译帐户页面中的内容,我遇到的问题是当我尝试进行社交登录时,尤其是使用 google 时,帐户重定向 URI 包括语言代码...
/en/accounts/google/login/callkback
这会导致 404,因为我在 google 重定向 URI 上没有该路径。到目前为止,我能看到的唯一解决方案是在 i18n 之外添加帐户 url 并失去翻译它们的能力,或者专门添加我在 google 重定向 URI 中提供的每种语言,这可能很乏味且可能不会在其他社交提供商上提供...
我该怎么办?
你必须使用 patterns
将 allauth 添加到 urlpatterns
,然后使用 i18n_patterns
添加到其他 url,这样 django 就不会添加allauth 的语言前缀 urls.
这是我的样子(我使用的是 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()
您可以看到,在将 url 添加到其他应用程序之前,我单独添加了 python 社交身份验证 url
我 运行 遇到 django allauth 和 i18n 的一些问题。我在 i18n urls 中有帐户,因此它在 url...
之后有一个语言代码这很好用,它允许我按照自己的意愿翻译帐户页面中的内容,我遇到的问题是当我尝试进行社交登录时,尤其是使用 google 时,帐户重定向 URI 包括语言代码...
/en/accounts/google/login/callkback
这会导致 404,因为我在 google 重定向 URI 上没有该路径。到目前为止,我能看到的唯一解决方案是在 i18n 之外添加帐户 url 并失去翻译它们的能力,或者专门添加我在 google 重定向 URI 中提供的每种语言,这可能很乏味且可能不会在其他社交提供商上提供...
我该怎么办?
你必须使用 patterns
将 allauth 添加到 urlpatterns
,然后使用 i18n_patterns
添加到其他 url,这样 django 就不会添加allauth 的语言前缀 urls.
这是我的样子(我使用的是 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()
您可以看到,在将 url 添加到其他应用程序之前,我单独添加了 python 社交身份验证 url