基于ann的相关场Django滤波器

2024-09-19 07:05:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用注解过滤。在

这是我的代码:

class Blog(models.Model):
    name = models.CharField(max_length=100)

class Reader(models.Model):
    name = models.CharField(max_length=50)
    blog= models.ForeignKey(Blog)
    type = models.ForeignKey(ReaderType)

class ReaderType(models.Model):
    name = models.CharField(max_length=50)

我想得到至少有2个"male"类型的阅读器的博客。 我有以下代码来获取至少有2个读者的博客:

^{pr2}$

如何添加只过滤至少有两个读者的博客的部分type="male"


Tags: 代码namemodelmodelstypebloglengthmax
1条回答
网友
1楼 · 发布于 2024-09-19 07:05:14

您可以直接在查询中筛选读卡器类型:

posts_with_multiple_readers = (
    Blog.objects.filter(reader__type__name='male')
    .annotate(reader_count=Count('reader'))
    .filter(reader_count__gte=2)
)

相关问题 更多 >