gpt4 book ai didi

django - 在 Django 中过滤 prefetch_related 为空

转载 作者:行者123 更新时间:2023-12-04 14:42:27 25 4
gpt4 key购买 nike

class Topping(models.Model):
name = models.CharField(max_length=30)

class Pizza(models.Model):
name = models.CharField(max_length=50)
toppings = models.ManyToManyField(Topping)

是否可以选择带有浇头的比萨饼,但只能选择具有一定数量浇头(例如 0、1、2)的比萨饼?

最佳答案

您可以通过注释查询集来过滤浇头的数量,然后对其进行过滤。

from django.db.models import Count

pizzas = Pizza.objects.annotate(
num_toppings=Count('toppings'),
).filter(num_toppings__lt=3)

然后您可以使用 prefetch_related与您对其他查询集所做的相同。
pizzas = Pizza.objects.annotate(
num_toppings=Count('toppings'),
).filter(num_toppings__lt=3).prefetch_related('toppings')

关于django - 在 Django 中过滤 prefetch_related 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33882577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com