首页 > 解决方案 > python文件中html内的django csrf_token

问题描述

在我的 models.py 中,我有一个辅助函数,它将一些 html 传递到列表中。然后我在views.py 中使用该列表。我一直收到 CSRF 验证失败,错误。下面models.py中的相关代码

f = """<form action="/solutions/" method="post"> 
<input type="submit"> </form>"""

我尝试了很多方法来纠正错误,包括下面的代码

f = """<form action="/solutions/" method="post"> 
{j}
<input type="submit"> </form>""".format(j=django.middleware.csrf.get_token(request))

但是,当我这样做时,我得到一个“函数”对象没有属性“META”错误。在我的模板中,我使用 {% csrf_token %} 但在我的辅助函数中使用它并没有成功。

我尝试过类似下面的代码。但也没有让它工作

f = """<form action="/solutions/" method="post"> 
{% csrf_token %}
<input type="submit"> </form>"""

标签: djangodjango-csrf

解决方案


您需要将其添加为隐藏输入<input name="csrfToken" value="token_value" type="hidden">

文档很好地解释了如何获取令牌值。


推荐阅读