Я пытаюсь сделать и запросить в Django, но я не могу получить желаемый результат. Я хочу использовать group by и фильтровать в Django Query, я пытался использовать annotate, просматривая некоторые ответы на stackoverflow и некоторых других сайтах, но не смог заставить его работать. Вот мой ответ после использования фильтра.
[
{
"id": 11667,
"rate_id": "FIT-PIT2",
"name": "FIT-PIT111",
"pms_room": null,
"description": null,
"checkin": "",
"checkout": "",
"connected_room": null
},
{
"id": 11698,
"rate_id": "343",
"name": "dfggffd",
"pms_room": "5BZ",
"description": null,
"checkin": null,
"checkout": null,
"connected_room": null
},
{
"id": 11699,
"rate_id": "343",
"name": "dfggffd",
"pms_room": "6BZ",
"description": null,
"checkin": null,
"checkout": null,
"connected_room": null
}]
Что я хочу сделать, это сгруппировать все те pms_rooms
, которые имеют одинаковые rate_id
, примерно что-то вроде этого {'343':['5BZ','6BZ'],'FIT-PIT2':[null]}
Я могу сделать это с помощью словаря или список
Но я хочу сделать это прямо из запроса, например table.objects.filter(condition).group_by('rate_id')
, что-то SQL эквивалент SELECT *,GROUP_CONCAT('name') FROM TABLE NAME WHERE PMS = hotel.pms GROUP BY rate_id
. Может кто-нибудь, пожалуйста, помогите мне. Спасибо.