首页 > 解决方案 > Django ORM:带有简单“分组依据”的查询集

问题描述

我正在尝试使用 django ORM 制作这个简单的“group by”表达式,但我不确定它会如何:

SELECT id, title, hotel_id, booking_id, day_number
FROM `bookings_booking_item`
where hotel_id IS NOT NULL AND booking_id=xxx
group by booking_id, hotel_id

ORDER BY id asc

我想要实现的是每次预订和酒店只获得一个(第一个)“项目”结果。

这是我的模型外观的概述:



class Hotel(models.Model):
    name = models.CharField(u'Name', max_length=40)
    ...

class Booking(models.Model):
    reference = models.CharField(u'Reference', max_length=50)
    ...

class BookingItem(models.Model):
    booking = models.ForeignKey(Booking, related_name='items', related_query_name='item')
    hotel = models.ForeignKey(Hotel, related_name='items', related_query_name='item')
    ...

有人可以帮我吗?

谢谢!

标签: djangogroup-byorm

解决方案


推荐阅读