【发布时间】:2021-07-30 06:24:08
【问题描述】:
我想通过自定义查询集为我的模型注释附加字段并使用函数访问它,这是一个简化的代码:
class CustomQuerySet(models.QuerySet):
def my_func(self):
return self.annotate(b_count=self.b_set.count()) # 'CustomQuerySet' object has no attribute 'b_set'
class A(models.Model):
objects = CustomQuerySet.as_manager()
class B(models.Model):
a = models.ForeignKey(A)
我想像 models.A.objects.my_func().all() 这样访问它,所以当我想获取它时,会在我的模型中添加一个额外的字段。
但我无法从CustomQuerySet 访问b_set。
以前我在模型A 中使用@property,但它每次都会发出额外的数据库请求。
如何从自定义查询集中访问一组相关模型?
【问题讨论】:
标签: python python-3.x django django-models