我有一个自定义模板标签,如果作为学生的参数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
符号。这根本没有帮助我。请帮忙!
答案 0 :(得分:0)
您正尝试根据用户的互动呈现模板。第一个发生在服务器上(服务器端,因为它经常被称为),后者发生在用户的浏览器上。
这些发生的顺序是首先在服务器上呈现模板,在浏览器中发送和呈现,然后用户与js交互。由于这个事实,正如我在评论中提到的那样,不可能影响在javascript中呈现的模板。
我建议您使用ajax来完成此操作。每当发生迭代时,您都会异步地向服务器发出请求以向您显示新数据。