Django заключая подстроку в строку с тегами привязки с атрибутом href - PullRequest
0 голосов
/ 13 апреля 2020

Сейчас я использую регулярное выражение для поиска подстроки в заданной строке, затем заключаю ее в якорные теги с помощью href, который находится в шаблоне jinja

pattern = re.compile(rf"({substring})",re.IGNORECASE);
anchoredString = mark_safe(re.sub(pattern, "<a href=\"{% url 'url' substring %}\">"+substring+"</a>"),string)))

Теги работают нормально, но когда я нажимаю на ссылку , он пытается перенаправить меня на буквальный "{% url 'url' substring%}", а не на путь "url", который я определил в своем urls.py.

Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 13 апреля 2020

Вы должны сначала получить URL в виде строки. Вы можете сделать это с помощью метода reverse

from django.urls import reverse

pattern = re.compile(rf"({substring})",re.IGNORECASE);
# `url` is the name of the url path
url = reverse("url", args=[substring])

anchoredString = mark_safe(re.sub(pattern, f'<a href="{url}">{substring}</a>'),string)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...