我有下面的代码,它在django 1.11中正常工作,升级后在django2.0中工作,但由于某种原因,从2.1到3.1.4,它在更高版本的django中无法工作。
<button
type="button"
class="btn btn-sm btn-secondary"
id="dodaj-poziv-za-clanove-tijela"
data-container="body"
data-toggle="popover"
title="Da li želite da dodate članove tijela u sastanak ?"
data-content=
"<form method='POST' action='{% url 'poziv_clanovi_dodaj' poziv_id=poziv.id %}'>
<button type='submit' class='btn btn-success btn-sm clanovi float-right'>Dodaj</button>
{% csrf_token %}
</form>"
> Dodaj poziv za članove tijela</button>
在浏览器中,这个按钮对于工作的django版本1.11和2.0来说看起来很正常,但在那些没有切换的版本中,2.0以上的每个版本包括2.1、2.2和3.0、3.1>在它和提交后,我得到csrf令牌错误
我在这里找到了一个解决方案如何在引导popver 中使用Django{%csrf_token%}
奇怪的是,{%csrf_token%}在django 1.11和django 2.0中工作,但由于django 2.1,您必须使用<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}" >
而是
现在我的工作popover看起来像:
<button
type="button"
class="btn btn-sm btn-secondary"
id="dodaj-poziv-za-clanove-tijela"
data-container="body"
data-toggle="popover"
title="Da li želite da dodate članove tijela u sastanak ?"
data-content=
"<form method='POST' action='{% url 'poziv_clanovi_dodaj' poziv_id=poziv.id %}'>
<button type='submit' class='btn btn-success btn-sm clanovi float-right'>Dodaj</button>
<input type='hidden' name='csrfmiddlewaretoken' value='{{ csrf_token }}' >
</form>
"
>Dodaj poziv za članove tijela</button>