@csrf_exempt 不适用于基于通用视图的类

2023-12-02

class ChromeLoginView(View):

     def get(self, request):
          return JsonResponse({'status': request.user.is_authenticated()})

     @method_decorator(csrf_exempt)
     def post(self, request):
          username = request.POST['username']
          password = request.POST['password']
          user = authenticate(username=username, password=password)
          if user is not None:
                if user.is_active:
                     login(request, user)
                     return JsonResponse({'status': True})
          return JsonResponse({'status': False})

我预计该帖子会被 csrf 停止,但它返回 403 错误。

但是如果删除该装饰器并在 URLConf 中执行此操作

url(r'^chrome_login/', csrf_exempt(ChromeLoginView.as_view()), name='chrome_login'),

它会起作用的。

这里发生了什么?它不应该工作吗,因为我猜这就是 method_decorator 所做的。 我正在使用 python3.4 和 django1.7.1

任何建议都会很棒。


正如@knbk所说,这就是dispatch()必须装饰的方法。

从 Django 1.9 开始,你可以使用method_decorator直接在课堂上:

from django.utils.decorators import method_decorator

@method_decorator(csrf_exempt, name='dispatch')
class ChromeLoginView(View):

    def get(self, request):
        return JsonResponse({'status': request.user.is_authenticated()})

    def post(self, request):
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                return JsonResponse({'status': True})
        return JsonResponse({'status': False})

这可以避免覆盖dispatch()方法只是装饰它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

@csrf_exempt 不适用于基于通用视图的类 的相关文章

随机推荐

  • 如何更改 OpenCV 应用程序中轨迹栏的位置?

    通常在我的 OpenCV 项目中 创建轨迹栏并将其放置在窗口中后 它会水平显示在窗口底部 是否可以更改轨迹栏的位置和方向 很不幸的是 不行 cv createTrackbar 不允许更改轨迹栏的位置和方向 但是如果你安装了 Qt 你可以创建
  • 忽略 JSON.NET 数据解析期间的解析错误

    我有一个具有预定义数据结构的对象 public class A public string Id get set public bool Enabled get set public int Age get set JSON 应该是 Id
  • 对 UITableViewCell 的accessoryView 使用自定义图像并让它响应 UITableViewDelegate

    我正在使用自定义绘制的 UITableViewCell 包括与单元格相同的accessoryView 我对accessoryView的设置是通过这样的方式进行的 UIImage accessoryImage UIImage imageNam
  • 将 C# 模型从视图传递到 Javascript

    我将此 ViewModel 传递给我的视图 public class DashboardViewModel public List
  • 不使用数据透视表根据每日数据计算月平均值

    我的工作表包含两列 A 列包含以下格式的日期dd mm yyyyB 列包含每日数据 根据每日数据 我必须在没有数据透视表的情况下生成每个月的月平均值 有些日子根本不包含任何数据 我无法使用数据透视表 因为我必须在稍后阶段使用月平均值来识别每
  • 级联删除表的子记录

    我有一个包含列 id 名称和parentid 的表 模型中的关系函数 location parent gt array self BELONGS TO Location parentid location children gt array
  • 使用 CSS 将非等宽字体强制设置为固定宽度

    有没有办法使用 CSS 强制字体为等宽字体 我的意思是 使用非等宽字体 您可以强制浏览器以固定宽度呈现每个字符吗 如果这是为了对齐表格中的数字 其中某些字体 使用传统排版 默认以可变宽度呈现它们 例如 Windows 上的 Segoe UI
  • NSLog - 如何打印对象名称?

    考虑 NSString myString Welcome NSLog myString 将打印Welcome在控制台中 我可以打印字符串 myString Welcome 我的意思是 我可以获得对象名称 myString 以及对象值 Wel
  • 在此示例中如何从目标列表中获取所有值

    我找到了这个example有两个JLists 我怎样才能从目的地获得所有值JList 我是Java新手 我想从第二个列表中获取所有值来进行一些测试来研究 import java awt BorderLayout import java aw
  • 是否可以使用行号和列号进行 SQL 更新? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在使用 jquery
  • Java mapToInt 与使用 Map 进行Reduce

    我一直在阅读有关reduce的文章 刚刚发现有一个3参数版本 基本上可以像这样执行map缩减 String strarr abc defg vwxyz System out println Arrays stream strarr redu
  • 如何使用 FMDB 将图像(字节)保存和检索到 SQLite(blob)?

    我正在制作一个 iOS 应用程序 需要显示来自远程站点 来自 URL 的一些图像 每次用户进入应显示图像的屏幕时 应用程序都会冻结 直到下载完成 所以我想将已经下载的图像存储到名为 COVERS 的 SQLite 表中 这是我如何下载和显示
  • 创建一个包含 n 个字符的字符串

    Java中有没有办法创建一个具有指定数量指定字符的字符串 就我而言 我需要创建一个包含十个空格的字符串 我当前的代码是 final StringBuffer outputBuffer new StringBuffer length for
  • R:识别 JSON 中的地理坐标

    我正在使用 R 编程语言 我的问题 我正在尝试自己在这里重新创建这张地图 例如在传单中 https crtc gc ca cartovista LTEOverTheYearsYE2019 EN index html 例如 2019 年 这是
  • 如何使用 React es6 处理多个受控输入?

    这是我的小提琴 https codepen io seunlanlege pen XjvgPJ editors 0011 我有两个输入 我正在尝试使用一种方法来处理onChange任何输入字段的事件 我已经在互联网上寻找解决方案 但一无所获
  • 当 Pod“忙”时向 Kubernetes 指定

    我的一项微服务正在 Kubernetes 上运行 我想在 Pod 繁忙时指定 K8s 负载均衡器 因为我当前得到的行为不正常 一个例子 我有 8 个 pod 正在运行 每个 pod 一次可以处理 1 个请求 每个请求占用分配给 Pod 的
  • 模糊匹配微小差异

    我有一列公司名称 我想计算该列中有多少家不同的公司 在本栏目中 一些相同的公司名称略有不同 例如 这些公司应该只计算一次 ASAHI INTECC CO LTD Asahi Intecc USA Inc ASAHI INTECC USA I
  • matplotlib 箭头和纵横比

    如果我运行这个脚本 import matplotlib pyplot as plt import pylab as plab plt figure plt plot 0 2 2 0 color c lw 0 5 plt plot 1 2 2
  • 排序向量查找的更快版本 (MATLAB)

    我在 MATLAB 中有以下类型的代码 indices find 1 2 2 3 3 3 4 5 6 7 7 3 这将返回 4 5 6 数组中元素的索引等于 3 现在 我的代码用很长的向量来做这种事情 向量是总是排序的 因此 我想要一个用
  • @csrf_exempt 不适用于基于通用视图的类

    class ChromeLoginView View def get self request return JsonResponse status request user is authenticated method decorato