【问题标题】:can't understand django csrf exempt for cbv's code无法理解 django csrf 豁免 cbv 的代码
【发布时间】:2020-06-22 07:13:47
【问题描述】:

我无法理解dispatch方法的含义以及method_decorator

是什么
class CSRFExemptMixin(object):
   @method_decorator(csrf_exempt)
   def dispatch(self, *args, **kwargs):
       return super(CSRFExemptMixin, self).dispatch(*args, **kwargs)

你能回答这个问题吗?

【问题讨论】:

标签: django python-3.x django-rest-framework


【解决方案1】:

Dispatch 只是函数的名称。当某些东西将使用这个类时,这个函数将被触发。而method_decorator只是装饰器。装饰器是一个函数,它接收一个函数,在装饰器内部制作其他东西,然后最终执行接收到的函数。

【讨论】:

  • 谢谢,但我的意思是为什么我们有 dispatch func 然后 super().dispatch() 这对我们有什么作用
  • Super 将调用原始调度(本示例未覆盖)。想象一下带有方法 m1 的 CLS 类,所以如果你有从 CLS 继承的 CLS2,并且如果 CLS2 有一个方法 m1,其中它有 Super,那么当你调用 CLS2.m1() 实际上它会做它在一个 CLS2 方法体,然后是它在 CLS m1 方法中的内容
猜你喜欢
  • 2020-11-02
  • 2021-07-20
  • 1970-01-01
  • 2019-05-06
  • 2021-07-30
  • 2016-10-03
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多