我知道可以使用 Django ORM 使用反向相關(guān)字段查詢模型。但是是否也可以獲取查詢匹配的反向相關(guān)模型的所有字段?例如,如果我們有以下模型: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在特定時(shí)間范圍內(nèi)可用的所有sprice并Location在該可用性期間獲得 s ?我們假設(shè)Availability具有相同位置的對(duì)象不能有重疊的開(kāi)始/結(jié)束日期時(shí)間。如果user_start_datetime和user_end_datetime是由用戶輸入的,那么我們可能會(huì)執(zhí)行以下操作:Location.objects.filter( availability__start_datetime__lte=start_datetime, availability__end_datetime__gte=end_datetime)但我不確定如何獲取導(dǎo)致查詢匹配price的特定字段availability。在原始 SQL 中,我正在談?wù)摰男袨榭赡芸梢酝ㄟ^(guò)以下方式實(shí)現(xiàn):SELECT l.id, l.name, a.priceFROM Location lINNER JOIN Availability aON a.location_id = l.idWHERE /* availability is within user-inputted timeframe */我考慮過(guò)使用類似的東西prefetch_related('availability_set'),但這只會(huì)為我提供與查詢匹配的對(duì)象的所有可用性Location。我只是想一個(gè) availability,這是該期限內(nèi)被查詢,以及更具體地講,price那availability。
添加回答
舉報(bào)
0/150
提交
取消