嗨,我在我的应用程序中使用多种语言,可以通过 url 访问它,比如www.asd.com/reg/?lang=es
有什么方法可以删除这个“?” 从我的网址开始,它变得像www.asd.com/reg/es 我的多语言功能正常工作。
谢谢
嗨,我在我的应用程序中使用多种语言,可以通过 url 访问它,比如www.asd.com/reg/?lang=es
有什么方法可以删除这个“?” 从我的网址开始,它变得像www.asd.com/reg/es 我的多语言功能正常工作。
谢谢
当您使用 访问 url 时?lang=es,您将在视图中获得一个以langvalue命名的参数。es这是通用的 HTTP url 方案。
使用 django,可以使用适当的 url 模式来完成类似的事情。例如:
url(r'^reg/(?P<lang>[\w]+)$', 'your_app.views.view_func',),
并且在视图中
def view_func(request, lang=None):
...
# lang will have value passed.
# do your stuff
因此,当您访问时www.asd.com/reg/es,参数lang将es在您的视图中具有价值。
Django 1.4 原生支持此类 URL - i18n_patterns. 据我了解,有一个名为的应用程序,django-i18nurls但它已包含在 django 核心中
您也可以为此使用django-localeurl应用程序(可在 BitBucket 获得)。它有一个中间件,可以修补request.path和 django 的reverse功能来实现区域设置 URL。也许这个应用程序有替代品
但是,此解决方案将为您提供格式的 URLwww.asd.com/es/reg/