如何将csrf_token添加到手动创建的HTML表单?

时间:2015-10-27 05:45:59

标签: django django-forms csrf django-csrf

使用Django format_html创建HTML表单时,我需要在下面csrf_token的位置插入{% csrf_token %},因为使用{% csrf_token %}当然不能替代使用format_html

res = format_html('''
<form method="POST">
  {% csrf_token %}
  {}
</form>''', ...

如何手动生成Django渲染HTML模板时插入的等效{% csrf_token %}

1 个答案:

答案 0 :(得分:1)

找到基于其他SO帖子的解决方案,方法是添加csrf_token的隐藏字段,如:

res = format_html('''
<form method="POST">
  <input type="hidden" name="csrfmiddlewaretoken" value="{}" />
  {}
</form>''', csrf(html_request)['csrf_token'], ...)