实现LoginRequiredMixin类

mixin.py
from django.contrib.auth.decorators import login_required
class LoginRequiredMixin():
    @classmethod
    def as_view(cls):
        view = super().as_view()
        return login_required(view)
from utils.mixin import LoginRequiredMixin

class OrderPlaceView(LoginRequiredMixin, View):

可以看到,在LoginRequiredMixin类中并没有as_view方法,而且它只是继承了object,也没有as_view方法,但是它的子类中是多继承,在View中有as_view()方法,所以LoginRequiredMixin使用了View类中的as_view方法。

  • 下面在来一段简单的代码理接:
class Father():
    def view(self):
        print("this is Father's CLass")

class Mother():
    
    def view(self):
        super().view()
        print("this's Mother")

class Son(Mother,Father):
    def view(self):
        super().view()
        print('Son')
son = Son()
son.view()
输出
this is Father's CLass
this's Mother
Son
  • 创建Son对象,执行view方法,方法继承自上一级类,找Mother,有,进去,发现没有具体实现,找上一级的类Father,有具体实现,执行Mother中的其他操作,执行Son类中的其他操作。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • property、魔法属性和魔法方法、多重继承和多继承 1.5 property 学习目标 1. 能够说出什么要...
    Cestine阅读 830评论 0 1
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,144评论 1 32
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,289评论 0 16
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,267评论 0 2
  • 这是一个有些中二的标题,因为,我今天要写一个关于游戏的故事。 这些天,我没有看书,也没有构思,我在 打游戏,PC端...
    爱写作的罗老师阅读 201评论 0 1