Django自定义模板标签在JavaScript中

时间:2015-06-18 08:06:10

标签: javascript django django-templates

我有一个自定义模板标签,如果作为学生的参数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符号。这根本没有帮助我。请帮忙!

1 个答案:

答案 0 :(得分:0)

您正尝试根据用户的互动呈现模板。第一个发生在服务器上(服务器端,因为它经常被称为),后者发生在用户的浏览器上。

这些发生的顺序是首先在服务器上呈现模板,在浏览器中发送和呈现,然后用户与js交互。由于这个事实,正如我在评论中提到的那样,不可能影响在javascript中呈现的模板。

我建议您使用ajax来完成此操作。每当发生迭代时,您都会异步地向服务器发出请求以向您显示新数据。