我想从我的javascript文件访问Django模板变量和URL标记。目前,我的做法如下-
<script>
const addcommentlink = "{% url 'post:add_comment'%}";
const postid = '{{post.id}}';
const deletecommentlink = "{% url 'post:delete_comment' %}";
const editlikelink = "{% url 'post:edit_like' %}";
const profilelink = "{% url 'instagram:profile' 'name' %}";
</script>
<script src="{% static 'post/js/post_details.js' %}"></script>
但我想直接从CCD_ 1文件访问它。有办法做到这一点吗?
您不能在javascript文件中使用Django模板语言。
您只能在django模板中使用变量、标记和过滤器。
模板是一个文本文件。它可以生成任何基于文本的格式(HTML、XML、CSV等(
如果要在javascript文件中访问{% url 'name' %}
的结果,必须首先在模板中呈现它(可能将其存储为数据属性(。
一个粗略的例子:
<div id="comment" data-add-link="{% url 'post:add_comment'%}" data-delete-link="{% url 'post:delete_comment' %}"></div>
在您的post_details.js
:中
const addcommentlink = $('#comment').data('add-link');
const deletecommentlink = $('#comment').data('delete-link');
然而,用户将能够检查数据链接。如果您需要模板中的任何内容,那么您必须假设它对其他用户可见。