Django загрузить статический скрипт jquery - PullRequest
0 голосов
/ 08 мая 2018

У меня есть два шаблона Django, один для представления подробного обновления и один для представления создания. Я использую простой скрипт jquery, чтобы показать / скрыть html-поля в зависимости от выбранного component_type пользователем. Однако этот скрипт jquery идентичен для шаблонов создания и детального обновления (нарушает принцип DRY). Поэтому я хотел бы сохранить его в отдельном файле. Как это сделать?

Шаблон создания сохраняется в MyApp / templates / MyApp / create.html и определяется следующим образом:

{% extends 'base.html' %}

{% load static %}
<script src="{% static 'js/jquery_script.js' %}"></script>

{% block content %}
<h2>Create new component</h2>

{% include 'snippets/form-snippet.html' with form=form %}

{% endblock %}

У меня есть сценарий, сохраненный в MyApp / static / MyApp / js / jquery_script.js, и он определен следующим образом:

<script>
{% block jquery %}

    $(document).ready(function(){
        hideShow()
    })

    $('#id_component_type').click(function(){
        hideShow()
    });

    function hideShow(){
        if(document.getElementById('id_component_type').options[document.getElementById('id_component_type').selectedIndex].value == "k_v")
        {
            $('#id_length').parents('p:first').hide();
            $('#id_k_v').parents('p:first').show();
        }else
        {
            $('#id_length').parents('p:first').show();
            $('#id_k_v').parents('p:first').hide();
        }
    }

{% endblock %}
</script>

Мой файл настроек должен быть настроен правильно (по крайней мере, с debug = True). Некоторые из применимых настроек:

STATIC_URL = '/static/'

INSTALLED_APPS = [
    'rest of the app',
    'django.contrib.staticfiles',
]

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Создайте плагин Jquery с желаемыми функциями и создайте ссылку как внутреннюю таблицу стилей в template.html.

Нажмите здесь , чтобы научиться создавать плагины Jquery

Его просто создать. Пожалуйста, используйте это.

0 голосов
/ 08 мая 2018

Поместите ваш скрипт в статическую папку, а затем включите его как:

{% load static %}
<script src="{% static 'js/yourscript.js' %}"></script>

Дополнительная документация о статических файлах здесь .

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