我的问题有点不寻常。 在我的项目中,我有一个静态js文件,其中定义了许多函数。 然后在每个模板中我都有一个脚本标签,我在这里定义了这个模板的必要变量,并从静态文件中调用我需要的函数。视图除了渲染模板外什么都不做。所以我的模板看起来像是:
{% extends "base.html" %}
{% load static %}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
{% block content %}
<script type="text/javascript">
$(document).ready(function(){
var first_var = 'foo';
var second_var ='bar';
my_function(first_var,second_var);
})
</script>
<div class="values"></div>
{% endblock %}
</body>
视图看起来像:
def my_view(request):
return render(request, 'my_app/my_template.html')
我必须做的是,不必在模板中手动编写脚本标记,而是拥有一个自定义模板标记,您可以将所需的变量传递给该标记,并返回相应的脚本。我必须这样做的原因是允许将使用该应用程序的人避免编写脚本,并且只有以下内容:
{% my_function 'foo' as first_var %}
我真的不知道该怎么做,或者这是否是正确的方法。重点是使用自定义标签而不是wiritng脚本,那么您认为应如何做到这一点?