【发布时间】:2015-09-03 18:15:43
【问题描述】:
我有一个自定义模板标签,如果作为学生的参数 id 传递,它会返回假设学生的姓名和卷号。
@register.inclusion_tag('snippet/student_name.html')
def st_name_tag(profile, disp_roll=True, disp_name=True):
#some calculations
return {'full_name':student.name,
'roll':student.roll_number,
}
模板(包含)由一些 Html 文件组成,该文件写在一行中(以避免来自 js 的 unterminated string literal 错误)。
我只是想从 JS 函数内部调用st_name_tag。
我的 JS 看起来像:
{% load profile_tag %}
<script type = "text/javascript">
eventclick : function(st){
var div = ('<div></div>');
var st_id = st.id;
if (st.status == 'pass'){
div.append('<p>Student Name:{% st_name_tag '+st_id+' %}</p>');
}
}
到目前为止,我尝试了上述方法,并从 st_id 变量中删除了 + 和 '' 标志。那根本没有帮助我。请帮忙!
【问题讨论】:
-
你不能那样做。您不能将客户端逻辑与服务器端逻辑混合,因为模板在发生任何事情之前已经在服务器上呈现在 javascript 上。你到底想达到什么目的?
-
我正在尝试在 javascript 点击事件上加载模板。
-
你必须使用 ajax 来解决这个问题。 stackoverflow.com/a/28341345/940098
-
嘿,感谢您提供有关服务器端和客户端逻辑的所有信息。我知道这一点,但从未想过那么远:)。我还有一个问题要问你,因为我仍然坚持这个问题。标签包含一个模板,模板具有一定的格式(布局),在整个项目中统一使用,也需要在这个上下文中使用。我按照您的建议使用了 ajax,并在成功函数中执行了
form.append('<p>Added By:{% profile_name_tag user_id %}</p>');。但不起作用。 -
我根据我们的 cmets 发布了一个答案。我建议您提出一个新问题,我很乐意为您提供帮助,目前还很模糊。
标签: javascript django django-templates