Python Django 1.9-url国际化

Python Django 1.9-url国际化,python,django,internationalization,django-1.9,Python,Django,Internationalization,Django 1.9,我正试图在Django 1.9中设置一个项目,但我很难翻译主页 当我的用户点击主页时,我想将他们重定向到/en或/fr 所以我检查了文档,但我不太清楚 在my settings.py中,我添加了以下内容(来自文档:): 我还有这个: LANGUAGE_CODE = 'en' DEFAULT_LANGUAGE = 'en' LANGUAGES = ( ('en', 'English'), ('fr', 'Français'), ) TIME_ZONE = 'America/Toro

我正试图在Django 1.9中设置一个项目,但我很难翻译主页

当我的用户点击主页时,我想将他们重定向到/en或/fr

所以我检查了文档,但我不太清楚

在my settings.py中,我添加了以下内容(来自文档:):

我还有这个:

LANGUAGE_CODE = 'en'
DEFAULT_LANGUAGE = 'en'
LANGUAGES = (
    ('en', 'English'),
    ('fr', 'Français'),
)
TIME_ZONE = 'America/Toronto'
USE_I18N = True
USE_L10N = True
USE_TZ = True
在my URL.py中,我添加了:

# -*- coding: utf-8 -*-
from django.conf.urls import url
from django.utils.translation import ugettext_lazy as _
from django.views.generic.base import TemplateView

urlpatterns = [
    url(r'^$', TemplateView.as_view(template_name="index.html"), name='home'),
    url(_(r'^privacy-policy/$'), TemplateView.as_view(template_name="privacy-policy.html"), name='privacy-policy'),
]
当我运行服务器并转到localhost:8000时,没有重定向到/en或/fr


我做错了什么?

我不太确定django 1.9,但在1.8中,您需要这样声明您的i18n urlpatterns:

# your_project/your_project/urls.py
from django.conf.urls import include, url
from django.contrib import admin
from django.conf.urls.i18n import i18n_patterns

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

几个月前,我们在我的公司博客上发表了一篇文章,如果它能帮助您的话

我不太确定django 1.9,但在1.8中,您需要这样声明您的i18n urlpatterns:

# your_project/your_project/urls.py
from django.conf.urls import include, url
from django.contrib import admin
from django.conf.urls.i18n import i18n_patterns

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

几个月前,我们在我的公司博客上发表了一篇文章,如果它能帮助您的话

我知道,但在文档中,他们说:
从1.8版开始就不推荐使用:
i18n_patterns()的前缀参数已经不推荐使用,Django 1.10将不支持它。只需传递一个django.conf.url.url()实例列表即可。
@Kornikopic In django>1.8:
urlpatterns+=i18n_模式([url(r'^test$,'your_package.views.test',name='test'))
@JamesFenwick这正是我试图避免的,因为此功能将在django 1.10中删除-我也尝试过,但它不起作用。这里是我得到的错误:
AttributeError:'list'对象没有属性'regex'
关于1.8版的弃用,您确实是对的。然而,在过去,贬值警告似乎已经消失了,他们一直提到i18n_模式,所以我想知道哪个版本是正确的。不管怎样,您是否尝试过在url中调用视图而不使用通用TemplateView?在Django 1.10中,函数将只从
i18n\u模式(前缀、模式描述等)
中获取模式列表
i18n\u模式(*pattern\u列表)
,但在文档中,他们说:
自1.8版以来已弃用:
i18n_patterns()的前缀参数已弃用,Django 1.10将不支持该参数。只需传递一个django.conf.url.url()实例列表即可。
@Kornikopic In django>1.8:
urlpatterns+=i18n_模式([url(r'^test$,'your_package.views.test',name='test'))
@JamesFenwick这正是我试图避免的,因为此功能将在django 1.10中删除-我也尝试过,但它不起作用。这里是我得到的错误:
AttributeError:'list'对象没有属性'regex'
关于1.8版的弃用,您确实是对的。然而,在过去,贬值警告似乎已经消失了,他们一直提到i18n_模式,所以我想知道哪个版本是正确的。不管怎样,您是否尝试过在url中调用视图而不使用通用TemplateView?在Django 1.10中,该函数将仅从
i18n\u模式(前缀、模式描述等)获取模式列表
i18n\u模式(*pattern\u列表)