【发布时间】:2021-06-19 07:44:17
【问题描述】:
我正在为一家酒店做项目
family = 'family'
single = 'single'
room_types = (
(family , 'family'),
(single , 'single'),
)
class Room(models.Model):
room_no = models.IntegerField(unique=True)
beds = models.IntegerField(default=2)
balcon = models.BooleanField(default=False)
room_type = models.CharField(max_length=15,choices=room_types,default=single)
这是我的观点(查询)
lists = Room.objects.order_by().values('balcon ','beds','room_type').distinct().annotate(total=Count('beds',distinct=True)+Count('balcon',distinct=True)+Count('room_type',distinct=True))
我希望查询返回类似 beds: 4 , balcon : True , room_type : single , total : 10 beds: 3 , balcon : True , room_type : family, total : 4 等等
但它并没有像我预期的那样返回!是否可以根据几个字段进行分组并根据所选字段进行计数?
谢谢你的帮助..
【问题讨论】:
-
我不太清楚什么你打算做什么。你到底算什么?如果有两个
room_types,一个有一个balcon,另一个没有,那么结果应该是什么? -
在这种情况下:两个
room_type都是family,但其中一个有balcon,另一个没有,我希望返回(家庭,真实:数量:1个房间)(家庭,假:数量:1个房间) -
我要返回数量(有特色的房间数量)
-
@WillemVanOnsem 请问有可能吗?
标签: python mysql django group-by