最佳答案
在 Django 中,自定义管理器是组织可重用查询逻辑的一个很好的方法:
您可能需要定制
Manager有两个原因: 添加额外的Manager方法,和/或修改Manager返回的初始QuerySet。
但是,它继续描述也可以创建定制的 QuerySet类,而且这些类可以作为管理器使用 QuerySet.as_manager()从数据模型直接访问:
由
QuerySet.as_manager()创建的Manager实例实际上与前面示例中的PersonManager完全相同。
在如何组织定制 Manager和/或定制 QuerySet类之间的逻辑方面,似乎有很大的灵活性。我应该根据什么原则来决定何时使用一种方法和另一种方法?