我有两个Django模板,一个用于详细更新视图,另一个用于创建视图。我使用一个简单的jquery脚本来显示/隐藏html字段,具体取决于用户选择的component_type。但是,此jquery脚本对于create和detail-update模板是相同的(违反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>
我的设置文件应该正确配置(至少调试= True)。一些适用的设置:
STATIC_URL = '/static/'
INSTALLED_APPS = [
'rest of the app',
'django.contrib.staticfiles',
]