我已经在javascript中动态创建了表单元素:
var selectform = document.createElement("form")
我向selectform添加了其他输入元素和这些属性:

   submitnselection.setAttribute('type',"submit");
   submitnselection.setAttribute('value',"Submit");
   submitnselection.setAttribute("name","submitnpage");
   selectform.setAttribute("method", "post")
   selectform.setAttribute = ("action", "/test")
   "{% csrf_token %}";

在HTML中,添加{% csrf_token %}模板标记会起作用,但是在这种情况下,javascript我收到403禁止错误:



我找到了一些解决方案,但对我没有任何帮助,是否有办法仅使用Django,Javascript和纯Jquery将{% csrf_token %}添加到表单中?另请注意,此脚本位于html内,因此我认为{% csrf_token %}模板标记会起作用。

最佳答案

这应该工作:

var inputElem = document.createElement('input');
inputElem.type = 'hidden';
inputElem.name = 'csrfmiddlewaretoken';
inputElem.value = '{{ csrf_token }}';
selectform.appendChild(inputElem);

您会看到,csrf_token只是一个字符串,它是表单的value输入元素的hidden。就这样!

09-13 09:00