03-重写与类方法
2018-10-20 本文已影响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