Один из моих URL-адресов не переводится, что дает мне ошибку 404 - PullRequest
0 голосов
/ 13 мая 2018

У меня сейчас проблема с шаблонами перевода и URL в 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')
]

URL с именем solutions работает, но solution - нет, что выдает ошибку 404, даже когда я перевожу и запускаю команду compilemessages.

1 Ответ

0 голосов
/ 13 мая 2018

Использование .format на urlpatterns не работает. Я заметил, что правильный подход (используемый в документации ) - заключить весь 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')
...