我正在使用Django 1.9.8和1.5.8角。我有一个名为song.html
的Django模板,它有一个角度组件,它使用自己的模板。当我尝试在我的角度组件的模板(名为{% csrf_token %}
)中使用任何Django模板标签(如my-component.template.html
)时,它不会被渲染,并且会显示确切的标记标记。
<!-- song.html -->
{% block content %}
<head>
....
</head>
<html ng-app="myApp">
<!-- some html.... -->
<my-component></my-component>
</html>
{% endblock %}
以下是my-component
<!-- my-component.template.html -->
<div id = "my_div">
<!-- some html -->
</div>
<form action = "" method = "post>
{% csrf_token %}
<!-- ....remaining form contents -->
</form>
Django没有创建隐藏的表单输入,我的表单上会出现确切的{% csrf_token %}
标记。但是,当我将表单从角度模板移动到Django模板时,csrf_token正确生成,但显然我的组件无法正常工作,因为指令不到位。所以基本上Django会在Django模板上创建csrf隐藏输入,但不会创建角度模板。
如何在角度模板中使用Django标记?如果有人问我,我道歉,但我不太清楚如何说出来。
我通过将song.html
上的全局javascript变量设置为csrf_token的值,手动创建隐藏表单输入,然后使用javascript设置该令牌的隐藏输入值来创建解决方法。但是,我宁愿学习解决这个问题的正确方法。