erg*_*elo 28 django csrf django-csrf
在我的django应用程序中,我在数据库中存储html字符串,然后将在用户的主页上显示为"消息".其中一些消息包含表单,但没有用模板语言编写,我无法插入csrf令牌(因此破坏了应用程序).
有没有办法直接从我正在编辑的python文件中插入此标记?我正在寻找以下内容:
csrf_token = django.csrf.generate()
message = "press the button please: <form><input type='hidden' name='csrf_token' value='%s'><input type='submit' value='press here'></form>" % (csrf_token)
Run Code Online (Sandbox Code Playgroud)
任何其他可以在类似情况下工作的解决方案都会很棒.谢谢
编辑: 实际上这不会起作用,因为每个会话的令牌都不同,因此将其存储在数据库中并不是很有用.有没有办法在视图中动态加载令牌?
Lak*_*sad 25
使用它的方法是直接在模板中使用它.
从文档中,:
<form action="" method="post">
{% csrf_token %}
Run Code Online (Sandbox Code Playgroud)
是你必须包括的.
接受的答案假定已在请求对象中设置了令牌.
也许这样的事情更好:
from django.middleware import csrf
def get_or_create_csrf_token(request):
token = request.META.get('CSRF_COOKIE', None)
if token is None:
token = csrf._get_new_csrf_key()
request.META['CSRF_COOKIE'] = token
request.META['CSRF_COOKIE_USED'] = True
return token
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28463 次 |
| 最近记录: |