Добавить что-нибудь в другой блок шаблона - PullRequest
0 голосов
/ 27 мая 2020

Django 3.0.6

база. html

{% load static %}

{% include 'general/header.html' %}
<body>
<div class="content">
{% block content %}
    {% add_to_script jquery %}
{% endblock content %}
</div>

{% include 'general/footer.html' %}

нижний колонтитул. html

{% block scripts %}
{% endblock %}

</body>
</html>

Проблема

Не могли бы вы сказать, можно ли написать {% add_to_script jquery%}, который добавляет <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> в блок скриптов?

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

1) попробуйте сделать что-то подобное внутри base.html создать файл scripts.html, который содержит все файлы сценариев

{% include "scripts.html" %}

{% block extra_scripts %}
{% endblock extra_scripts %}

2) Если в других шаблонах html вам нужно писать сценарии, просто напишите внутри

{% block extra_scripts %}

3) Внутри scripts.html укажите значение всех ваших скриптов

{% load static %}

<script type="text/javascript" src="{% static 'js/jquery-3.3.1.min.js' %}"></script>
<!-- Bootstrap tooltips -->
<script type="text/javascript" src="{% static 'js/popper.min.js' %}"></script>
<!-- Bootstrap core JavaScript -->
<script type="text/javascript" src="{% static 'js/bootstrap.min.js' %}"></script>
<!-- MDB core JavaScript -->
<script type="text/javascript" src="{% static 'js/mdb.min.js' %}"></script>
<!-- Initializations -->
<script type="text/javascript">
  // Animations initialization
  new WOW().init();

</script>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
0 голосов
/ 27 мая 2020

Существует библиотека, которая позволяет вам это делать: https://github.com/divio/django-sekizai

Пример шаблона:

{% load sekizai_tags %}

<html>
<head>
    {% render_block "css" %}
</head>
<body>

... Your content comes here.
... Maybe you want to throw in some css:

{% addtoblock "css" %}
    <link href="/media/css/stylesheet.css" media="screen" rel="stylesheet" type="text/css" />
{% endaddtoblock %}

... Some more content here.

{% addtoblock "js" %}
    <script type="text/javascript">
        alert("Hello django-sekizai");
    </script>
{% endaddtoblock %}

... content of js will be rendered here
{% render_block "js" %}

</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...