Django 模型管理与管理选项全解析
1. 管理器方法与查询集修改
在 Django 中,管理器(Manager)方法可以通过 self.model 访问其所关联的模型类。管理器的基础查询集(QuerySet)默认会返回系统中的所有对象。例如:
class Book(models.Model):
title = models.CharField(maxlength=100)
author = models.CharField(maxlength=50)
使用 Book.objects.all() 语句将返回数据库中的所有书籍。
你可以通过重写 Manager.get_query_set() 方法来覆盖基础查询集。 get_query_set() 应该返回一个具有所需属性的查询集。以下是一个示例,该模型有两个管理器,一个返回所有对象,另一个仅返回 Roald Dahl 所著的书籍:
# 首先,定义管理器子类
class DahlBookManager(models.Manager):
def get_query_set(self):
qs = super(DahlBookManager, self).get_query_set()
return qs.filter(author='Roald Dahl')
# 然后将其显式挂钩
超级会员免费看
订阅专栏 解锁全文
725

被折叠的 条评论
为什么被折叠?



