美文网首页
03-重写与类方法

03-重写与类方法

作者: 学飞的小鸡 | 来源:发表于2018-10-20 15:09 被阅读0次
    from django.db import models
    
    # Create your models here.
    
    
    # objects管理器 (Manager对象)
    # 自定义object管理器
    class StudentManager(models.Manager):
        # 重写all()
        def all(self):
            # 获取所有数据 super().all()
            # 逻辑删除的数据,不显示
            return super().all().filter(isdel=False)
    
        # 添加对象方法 [快速创建模型对象]
        def create(self, name, score):
            # self.model() 对应的Student 对象
            stu = self.model()
            stu.s_name = name
            stu.s_score = score
            return stu
    
    # 模型类
    class Student(models.Model):
        # 系统(默认会自动创建)
        # objects = models.Manager()
    
        # 自定义管理器2
        # 如果有自定义,系统九不会给创建 objects
        myObjects = StudentManager()
    
        s_name = models.CharField(max_length=50)
        s_score = models.IntegerField()
    
        # 逻辑删除(默认不删除)
        isdel = models.BooleanField(default=False)
    
    
        # 添加类方法 [快速创建模型对象]
        @classmethod
        def create(cls, name, score):
            stu = cls(s_name=name, s_score=score)
            return stu
    

    相关文章

      网友评论

          本文标题:03-重写与类方法

          本文链接:https://www.haomeiwen.com/subject/debyaftx.html