-2

我正在使用引导弹出窗口弹出一个小表单。如何让 {% csrf_token %} 在 javascript 弹出框内工作。

$('.delete_btn').popover({ 
      html: 'true', placement: 'top', title: 'Are you sure?', 
      content: '<form action="{{object.get_delete_url}}" method="post">
               {% csrf_token %}<div><input type="hidden" name="next" value="" />
               <input type="submit" class="btn btn-danger" value="Confirm" />
               </div></form>' 
    });

谢谢大家

编辑:

现在我已经解决了 csrf_token 的问题,但无法解决获取绝对 url 的问题。

4

1 回答 1

1

几天前我自己也遇到了同样的问题。你说你找到了答案,但我想我不妨把它贴在这里给任何可能偶然发现这个问题的人。

当 django 将 csrf 令牌标签放入 html 时,它会创建一个不可见的 html 标签。我遇到的问题是,它使用单引号:

<input type='hidden' name='csrfmiddlewaretoken' value='sometokeninhere' />

这对我来说有点奇怪,因为双引号是标准的,我目前正在调查这些单引号背后的原因。我遇到的另一个问题是{{ form.variable1 }},我放入弹出框的 django 变量(即)被渲染为带双引号的输入标签。失败。所以,我使用的修复是从上下文中获取 csrf 令牌变量并使用它来制作我自己的隐藏输入,替换为{% csrf_token %}

<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}" >
于 2013-07-06T06:03:56.610 回答