自定义管理器类和方法:来替换objects,让django和数据库进行交互,一个模型可以有多个模型管理器。
通过修改管理器返回的原始查询集规则。
class TagManage(models.Manager):
def get_queryset(self): # 重写get_queryset方法
# return super(TagManage, self).get_queryset().filter(is_delete=0)
return super(TagManage, self).get_queryset().filter()
class Tags(models.Model):
# 自定义模型管理器My_Obj
My_Obj = models.Manager() # 如果没有这段,原有的objects就不存在了
My_Obj2 = TagManage() # 使用管理器类创建一个新的管理器对象
# def __init__(self): # 继承父类属性
# super().__init__()
tag_title = models.CharField(max_length=200, verbose_name='标签名')
tag_short_title = models.IntegerField(max_length=200, verbose_name='副标题', blank=True)
def index(request):
if request.method == 'GET':
Tags.My_Obj2.all()
Tags.objects.all()
return HttpResponse('恭喜你,看到了第一个自定义页面')