我目前在使用this approach的Django 1.11上遇到翻译和网址格式问题。
这是我的 urls.py 。
from django.conf.urls import url # noqa
from django.conf.urls.i18n import i18n_patterns
from django.utils.translation import gettext_lazy as _
from core.views import HomeView, SolutionsView, SolutionView
urlpatterns = [
url(r'^$', HomeView.as_view(), name='home'),
url(_(r'^solucoes$'), SolutionsView.as_view(), name='solutions'),
url('{solutions}/{solution}$'.format(
solutions=_(r'^solucoes'),
solution='(?P<slug>[\w-]+)'
), SolutionView.as_view(), name='solution')
]
名称为solutions
的网址有效,但solution
没有,导致404错误,即使我翻译并运行compilemessages
命令也是如此。
答案 0 :(得分:0)
在urlpatterns上使用.format
不起作用。我注意到正确的方法(在documentation中使用)是将整个网址包装在_
中。
错:
url('{solutions}/{solution}$'.format(
solutions=_(r'^solucoes'),
solution='(?P<slug>[\w-]+)'
), SolutionView.as_view(), name='solution')
正确:
url(_(r'^solucoes/(?P<slug>[\w-]+)/$'), SolutionView.as_view(), name='solution')