为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过相关对象查询模型并使用 Django ORM 在查询集中获取相关对象

如何通过相关对象查询模型并使用 Django ORM 在查询集中获取相关对象

梵蒂冈之花 2021-06-06 12:19:09
我知道可以使用 Django ORM 使用反向相关字段查询模型。但是是否也可以获取查询匹配的反向相关模型的所有字段?例如,如果我们有以下模型:class Location(models.Model):    name = models.CharField(max_length=50)class Availability(models.Model):    location = models.ForeignKey(Location, on_delete=models.CASCADE)    start_datetime = models.DateTimeField()    end_datetime = models.DateTimeField()    price = models.PositiveIntegerField()是否有可能找到Location在特定时间范围内可用的所有sprice并Location在该可用性期间获得 s ?我们假设Availability具有相同位置的对象不能有重叠的开始/结束日期时间。如果user_start_datetime和user_end_datetime是由用户输入的,那么我们可能会执行以下操作:Location.objects.filter(    availability__start_datetime__lte=start_datetime,    availability__end_datetime__gte=end_datetime)但我不确定如何获取导致查询匹配price的特定字段availability。在原始 SQL 中,我正在谈论的行为可能可以通过以下方式实现:SELECT l.id, l.name, a.priceFROM Location lINNER JOIN Availability aON a.location_id = l.idWHERE /* availability is within user-inputted timeframe */我考虑过使用类似的东西prefetch_related('availability_set'),但这只会为我提供与查询匹配的对象的所有可用性Location。我只是想一个 availability,这是该期限内被查询,以及更具体地讲,price那availability。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信