社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

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

Farbod909 • 5 年前 • 1614 次点击  

我知道使用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 在特定时间段内可用的,并且还可以获得 price 位置 在这段时间内?我们假设 Availability 具有相同位置的对象不能有重叠的开始/结束日期时间。

如果 user_start_datetime user_end_datetime 是由用户输入的,那么我们可以做如下的事情:

Location.objects.filter(
    availability__start_datetime__lte=start_datetime,
    availability__end_datetime__gte=end_datetime)

但我不知道该如何得到 价格 特定字段 availability 结果与查询匹配。

在原始SQL中,我所说的行为可能通过以下方式实现:

SELECT l.id, l.name, a.price
FROM Location l
INNER JOIN Availability a
ON a.location_id = l.id
WHERE /* availability is within user-inputted timeframe */

我考虑过使用 prefetch_related('availability_set') 但是那只会让我 全部的 可用于 位置 与查询匹配的对象。我只是想要 可利用性 这是在查询的时间范围内,更具体地说,是 价格 其中 可利用性 .

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37930
 
1614 次点击  
文章 [ 1 ]  |  最新文章 5 年前