从sql转换为Django ORM

问题描述 投票:1回答:1

请帮帮我!如何将此SELECT hotel_id FROM hotelrooms GROUP BY hotel_id HAVING COUNT(room_id) < 20转换为Django ORM?

型号:

class hotelrooms(models.Model):
  room_id = models.IntegerField()
  hotel_id = models.IntegerField()
  price = models.IntegerField()
sql django-orm
1个回答
0
投票

您可以通过以下方式查询:

HotelRoom.objects.values('hotel_id').annotate(
    nhotel=Count('room_id')
).filter(nhotel__lt=20).order_by('hotel_id')

话虽如此,看起来这些应该是**ForeignKey**s [Django-doc]ForeignKey引用另一个模型,因此可以例如强制执行引用完整性。

© www.soinside.com 2019 - 2024. All rights reserved.