gpt4 book ai didi

python - Django : How to override the CSRF_FAILURE_TEMPLATE

转载 作者:太空狗 更新时间:2023-10-29 17:39:00 29 4
gpt4 key购买 nike

如果 csrf 检查失败,Django 会显示一个带有 403 错误的页面。

Error page displayed on csrf error

在我看来,这个错误可能会在常规使用中发生,例如,当用户在其浏览器设置中禁用 cookie 使用时。

不幸的是,此错误消息对最终用户没有太大帮助,并且具有“django-error”布局(这是一个问题,因为例如缺少站点导航)。

Django 有一个很好的覆盖模板的机制,但似乎这个模板是硬编码在代码中的。 https://github.com/django/django/blob/1.6.8/django/views/csrf.py

有没有办法覆盖此模板以便向用户提供更友好的消息?

最佳答案

引用Django document ,你可以在你的settings.py中设置CSRF_FAILURE_VIEW,比如:

CSRF_FAILURE_VIEW = 'your_app_name.views.csrf_failure'

此外,您还需要在 View 中定义一个 csrf_failure 函数(需要具有此签名:def csrf_failure(request, reason="") 基于文档),类似于:

def csrf_failure(request, reason=""):
ctx = {'message': 'some custom messages'}
return render_to_response(your_custom_template, ctx)

您可以将自定义模板编写为:

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
{{ message }}
</body>
</html>

关于python - Django : How to override the CSRF_FAILURE_TEMPLATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26925244/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com