加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 没有尾随斜杠的Django i18n_patterns

发布时间:2020-12-20 13:16:13 所属栏目:Python 来源:网络整理
导读:我正试图摆脱网址上的尾随斜线.目前网络服务器成功删除斜线和APPEND_SLASH = false一切正常但我的本地化主页有问题: http://example.com/en/ - okhttp://example.com/en - Page not found (404)Django tried these URL patterns,in this order:^admin/^en/T
我正试图摆脱网址上的尾随斜线.目前网络服务器成功删除斜线和APPEND_SLASH = false一切正常但我的本地化主页有问题:

http://example.com/en/ - ok
http://example.com/en - Page not found (404)

Django tried these URL patterns,in this order:

^admin/
^en/

The current URL,en,didn't match any of these.

这是我的urls.py设置:

urlpatterns = [
    url(r'^admin/',admin.site.urls),]

urlpatterns += i18n_patterns(
    url(r'^$',views.index,name='index'),)

它可以使这些i18n_patterns无斜线工作吗?

解决方法

我最终创建了一个执行以下操作的中间件:

from django.shortcuts import redirect
from django.utils import translation

def add_i18npatterns_trailing_slash(get_response):
    def middleware(request):
        response = get_response(request)
        if response.status_code == 404:
            language_code = translation.get_language()
            if request.path.endswith(language_code):
                return redirect(f'{request.path}/')
        return response
    return middleware

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读