Python Django 1.9-url国际化
我正试图在Django 1.9中设置一个项目,但我很难翻译主页 当我的用户点击主页时,我想将他们重定向到/en或/fr 所以我检查了文档,但我不太清楚 在my settings.py中,我添加了以下内容(来自文档:): 我还有这个: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
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列表)