gpt4 book ai didi

python - 根据 Django 中的对象计数按一对多关系过滤

转载 作者:太空宇宙 更新时间:2023-11-04 10:15:45 25 4
gpt4 key购买 nike

我有 4 个与餐厅相关的模型,但我很难返回正确的结果。

模型是AdminEnteredRestaurantRestaurantPhotoMenu,定义如下:

class AdminEnteredRestaurant(models.Model):
restaurant = models.OneToOneField(Restaurant)
...

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

class Photo(models.Model):
restaurant = models.ForeignKey(Restaurant)
...

class Menu(models.Model):
restaurant = models.OneToOneField(Restaurant)
...

我想要的查询是过滤所有 AdminEnteredRestaurant 并只返回那些 AdminEnteredRestaurant 有 1 个或更少的 Photo 和 0 个菜单.我该怎么做?

最佳答案

我会使用 Count , annotate , lteisnull做类似的东西

from django.db.models import Count
results = AdminEnteredRestaurant.objects.annotate(num_photos=Count('restaurant__photo')) \
.filter(num_photos__lte=1) \
.filter(restaurant__menu__isnull =True)

关于python - 根据 Django 中的对象计数按一对多关系过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35490345/

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