Использование переменной для имени приложения {% url%} в шаблоне Django - PullRequest
1 голос
/ 14 июля 2020

В моем шаблоне я хочу сослаться на определенный URL, допустим, он называется homepage. Однако этот именованный URL-адрес доступен в двух моих приложениях, и я использую одну и ту же страницу html, которая иногда должна ссылаться на одно приложение, а иногда на другое приложение. Теперь у меня есть это:

<a href="{% if app_name == 'app1' %}{% url 'app1:homepage' %}{% else %}{% url 'app2:homepage' %}{% endif %}">link</a>

Это не очень хорошо и плохо масштабируется (иногда здесь может использоваться до 4 приложений). В идеале я бы использовал что-то вроде этого:

<a href="{% url app_name + ':homepage' %}">link</a>

Но это не работает. Есть ли способ каким-то образом использовать app_name в качестве переменной в URL-адресе?

1 Ответ

1 голос
/ 15 июля 2020

попробуйте это:

{% with dynamic_app_url=app_name|add:":"|add:"homepage" %}
    <a href="{% url dynamic_app_url %}">link</a>
{% endwith %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...