У меня есть следующая таблица:
![enter image description here](https://i.stack.imgur.com/mKIYJ.png)
Now I want to group the data by code
, have a sum
of visitors
and the number of total nights
the visitors stayed for each.
I can do the first bit with this query:
result = Entry.objects.filter(owner=request.user).values("code").annotate(
total_visitors=Sum("visitors"))
Это дает что-то вроде этих строк: [{'code': 'AT - Wien', 'visitors': 2}, {'code': 'CN - China', 'visitors': 4}, ...]
Мне нужно что-то вот так: [{'code': 'AT - Wien', 'visitors': 2, 'nights': x}, {'code': 'CN - China', 'visitors': 4, 'nights': x}, ...]
Теперь проблема в том, сколько всего ночей они провели. Для каждой записи мне нужно будет сделать следующее, чтобы вычислить это: nights = (departure - arrival) * visitors
Как мне сделать это правильно? Я могу сделать это в коде и перебирать отдельные записи, но должен быть более чистый способ.
Спасибо!