Когда я включаю шаблон в другой шаблон, как я могу передать путь к исходному файлу? - PullRequest
0 голосов
/ 08 января 2019

У меня есть два шаблона, которые идут вместе, один внутри другого. Внутренняя имеет значок, который должен меняться в зависимости от содержимого родительского шаблона.

Я пытался передать путь к значку с помощью переменной:

src="{% url 'main_bar_icon' %}"> 

и я добавил эту строку кода в родительский шаблон:

{% with main_bar_icon='../static/dist/img/logout-icon.svg' %}
{% include 'main_bar.html' %}
{% endwith %}

Итак, это мой внутренний шаблон:

{% block main_bar %}
    <a href="">
        <img class="app-main-bar-icon" 
             src="{% url 'main_bar_icon' %}">
    </a>
{% endblock main_bar %}

А это мой родительский шаблон:

{% block content %}
    {% with main_bar_icon='/dist/img/logout-icon.svg' %}
    {% include 'main_bar.html' %}
    {% endwith %}
{% endblock content%}

В браузере я получаю это:

<img class="app-main-bar-icon" src(unknown) alt="icon">

1 Ответ

0 голосов
/ 08 января 2019

К сожалению, шаблонный тег {% url ... %} может использоваться только для получения URL-адресов для представлений, определенных в urlpatterns.

Для ваших нужд вам потребуется:

  • использовать обычную переменную, поскольку вы уже присваиваете путь к переменной, просто: <img class="app-main-bar-icon" src="{{ main_bar_icon }}">

  • или, для более перспективного решения, вы можете настроить django статические файлы и использовать {% with main_bar_icon='dist/img/logout-icon.svg' %}, а затем <img class="app-main-bar-icon" src="{% static main_bar_icon %}">

...