Переменные статические имена файлов в Django - PullRequest
0 голосов
/ 04 июня 2019

У меня есть много файлов шаблонов, в конце которых есть следующий скрипт:

    {% block footer %}
        <script src="{% static 'js/jquery-3.3.1.min.js' %}"></script>
    {% endblock %}

В какой-то момент я удалил файл 'js/jquery-3.3.1.min.js' и заменил его более новой версией js/jquery-3.4.1.min.js.

Я не хочу обновлять все файлы шаблонов вручную до нового имени файла. Есть ли ярлык, который я могу использовать? Что-то вроде:

    {% block footer %}
        <script src="{% static 'js/{{THE_LATEST_JS_FILE_NAME}}' %}"></script>
    {% endblock %}

Обновление:

Текущее решение (на основании подсказки @Pranav Totala):

В файле base.html я объявляю переменную:

    {% with THE_LATEST_JQUERY_FILE_PATH="js/jquery-3.3.1.min.js" %}
        {% block footer %}
        {% endblock %}
    {% endwith %}

В child_001.html:

    {% extends "base.html" %}
    ...
    ...
    {% block footer %}
        <script src="{% static THE_LATEST_JQUERY_FILE_PATH' %}"></script>
        ...
        ...
    {% endblock %}    

Любое улучшение этого приветствуется.

1 Ответ

0 голосов
/ 04 июня 2019

Вы можете сделать

{% extends index.html %}
{% extends base.html %}

{% block allscripts %}

THE_LATEST_JS_FILE_PATH='js/jquery-3.4.1.min.js'
 <script src="{% static THE_LATEST_JS_FILE_PATH %}"></script>

{% endblock %}

и в файлах base.html и index.html создать блоки, в которые вы хотите добавить эти шаблоны

{% block allscripts %}
{% endblock %}

Также не нужноиспользование {{ }}, если вы уже находитесь в {% %}, что делает его кодом Python

...