请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于dispatch的一些疑问

https://img1.sycdn.imooc.com//szimg/5ad0054300011cea06550257.jpg

我发现as_view方法会调用一个叫dispatch的方法


https://img1.sycdn.imooc.com//szimg/5ad005530001221509010221.jpg

这个dispatch好像是判断request的方法是否存在或者被允许的方法。

https://img1.sycdn.imooc.com//szimg/5ad0045a00013f3e08520142.jpg

我们这样继承这个类,是否等于重构了dispatch方法,效果等于就是在运行dispatch方法的时候加上一个验证登录的装饰器,原本的dispatch方法就没用了。

这样是否会影响我们项目的运行?还是本来原本的dispatch就是个可有可无的方法,设计来就是为了重构的?麻烦老师有空帮我解答一下这个问题。谢谢


正在回答

1回答

zznq 2018-05-02 18:30:37

先说一下我自己理解的思路:

验证登陆的装饰器只能在函数或者方法上使用,所以老师新创建了LoginRequiredMixin类,并在dispatch方法上使用了验证登陆的装饰器;


回答你的问题:

我们这样继承这个类,是否等于重构了dispatch方法?原本的dispatch方法就没用了

当然有用

return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)

这个就是返回原来的dispatch方法

1 回复 有任何疑惑可以回复我~
  • zznq #1
    还有装饰器常常用与不改变函数或方法内的代码,进行添加功能,(可能我有说的不对的地方,欢迎指出,谢谢)
    回复 有任何疑惑可以回复我~ 2018-05-02 18:33:13
  • 提问者 慕九州2288205 回复 zznq #2
    谢谢,我之前对super函数和装饰器理解有问题。
    回复 有任何疑惑可以回复我~ 2018-05-02 22:40:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信