本文介绍 django.conf.urls.i18n.i18n_patterns
的用法。
声明
i18n_patterns(*urls, prefix_default_language=True)
该函数可以在根 URLconf 中使用,Django 会自动将当前活动语言代码添加到
中定义的所有 URL 模式。i18n_patterns()
将 prefix_default_language
设置为 False
会从默认语言 (
) 中删除前缀。这在将翻译添加到现有站点时很有用,这样当前的 URL 就不会改变。LANGUAGE_CODE
示例 URL 模式:
from django.conf.urls.i18n import i18n_patterns
from django.urls import include, path
from about import views as about_views
from news import views as news_views
from sitemap.views import sitemap
urlpatterns = [
path('sitemap.xml', sitemap, name='sitemap-xml'),
]
news_patterns = ([
path('', news_views.index, name='index'),
path('category/<slug:slug>/', news_views.category, name='category'),
path('<slug:slug>/', news_views.details, name='detail'),
], 'news')
urlpatterns += i18n_patterns(
path('about/', about_views.main, name='about'),
path('news/', include(news_patterns, namespace='news')),
)
在定义了这些 URL 模式之后,Django 会自动将语言前缀添加到由i18n_patterns
函数添加的 URL 模式中。例子:
>>> from django.urls import reverse
>>> from django.utils.translation import activate
>>> activate('en')
>>> reverse('sitemap-xml')
'/sitemap.xml'
>>> reverse('news:index')
'/en/news/'
>>> activate('nl')
>>> reverse('news:detail', kwargs={'slug': 'news-slug'})
'/nl/news/news-slug/'
使用 prefix_default_language=False
和 LANGUAGE_CODE='en'
,URL 将是:
>>> activate('en')
>>> reverse('news:index')
'/news/'
>>> activate('nl')
>>> reverse('news:index')
'/nl/news/'
警告
仅允许在根 URLconf 中使用。在包含的 URLconf 中使用它会引发 i18n_patterns()
异常。ImproperlyConfigured
警告
确保您没有可能与 automatically-added 语言前缀冲突的非前缀 URL 模式。
相关用法
- Python import__用法及代码示例
- Python itertools.takewhile用法及代码示例
- Python id()用法及代码示例
- Python ipaddress.collapse_addresses用法及代码示例
- Python ipaddress.IPv4Address.reverse_pointer用法及代码示例
- Python io.text_encoding用法及代码示例
- Python string isidentifier()用法及代码示例
- Python numpy irr用法及代码示例
- Python ipaddress.IPv4Address.__format__用法及代码示例
- Python calendar isleap()用法及代码示例
- Python math isclose()用法及代码示例
- Python string isupper()用法及代码示例
- Python itertools.cycle用法及代码示例
- Python itertools.dropwhile用法及代码示例
- Python scipy integrate.trapz用法及代码示例
- Python itertools.repeat用法及代码示例
- Python ipaddress.IPv4Network.supernet用法及代码示例
- Python string isalnum()用法及代码示例
- Python inspect.Parameter.replace用法及代码示例
- Python numpy matrix identity()用法及代码示例
- Python inspect.Parameter.kind用法及代码示例
- Python int转exponential用法及代码示例
- Python ipaddress.IPv4Network.supernet_of用法及代码示例
- Python itertools.combinations_with_replacement用法及代码示例
- Python itertools.groupby()用法及代码示例
注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.conf.urls.i18n.i18n_patterns。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。