Django模板语法与JavaScript代码混合



我的JS代码在块内的.html django模板中,这样:

{% extends 'base.html' %}
... some blocks here ...
{% block javascript %}
<script>
    $(document).ready(function () {
    ...
    });
</script>
{% endblock %}

现在,我需要在JS代码中使用一些从视图到模板传递的上下文var。我使用了在HTML元素中声明的选项,使用Django Template语法{{...}}

<div id="order_id" data-order-id={{order.id}}>

,使用JQ我得到了此元素并读取数据值。这样:

var orderId = $("#order_id").data('order-id')

这效果很好,但是我意识到,如果我将代码具有相同的代码。这样:

var orderId = {{ order.id }};
var changeStatusUrl = "{% url 'orders:change_status' %}"

这也很好,所以我的问题是这是一个好习惯,还是我将来会面临一些缺点。

如果Proyect是中等大小的。我通常实现的是拥有一个单独的JavaScript文件。在文件导入之前,我从Django模板出现中生成所需的变量。

例如,如果绘制了线图。我的变量数据将具有所需的值。然后,我将导入一个在变量顶部构建的脚本。

<script>var data = [{% for s in stats %}{{s}},{% endfor %}];</script>
<script src="{% static "myapp/js/line.js" %}"></script>

最新更新