django - 我的一个网址没有被翻译,给我一个 404 错误
问题描述
我目前使用这种方法在 Django 1.11 上遇到了翻译和 url 模式的问题。
这是我的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')
]
带有名称的 urlsolutions
工作,但solution
没有,给我一个 404 错误,即使我翻译并运行compilemessages
命令。
解决方案
在 urlpatterns 上使用.format
不起作用。我注意到正确的方法(在文档中使用)是将整个 url 包装在_
.
错误的:
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')
推荐阅读
- java - 如何增加 Windows 服务器上的线程限制?
- typescript - 如何在 TypeScript 模块类型中声明某些内容而不导出它?
- javascript - 淘汰赛模型:淘汰赛复选框中的挑战
- r - 在 R 中订购 DataFrame 保持模式
- c# - 设置随机图像
- .net - 使用 cloudrail AdvancedRequest 获取异常
- java - 在 @Configuration 中注入合并的 bean 列表
- javascript - React 上下文提供者和消费者
- laravel-5 - 视频为空白但可以听到音频 - Laravel
- python - 比较两个不同熊猫数据框中的两列值