У меня есть два шаблона 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',
]