Я новичок в аннотациях Django и пытаюсь создать сводный отчет о доходах от ордеров в указанных местоположениях.
Например, отчет будет выглядеть примерно так:
Location Name | Location Type | Sum of Order Subtotal
А вот примеры моделей, которые я бы использовал:
class Order(models.Model):
order_subtotal = models.DecimalField(...)
location = models.ForignKey('Location')
....
class Location(models.Model):
name = models.CharField(...)
type = models.IntegerField(...)
....
Я могу выполнить несколько запросов для аннотирования ...
from django.db import models
In [1]: order_locations =\
Order.objects.values('location').annotate(models.Sum('order_subtotal'))
In [2]: order_locations[0]
Out[2]: {'location': 1, 'order_subtotal__sum': Decimal('1768.08')}
In [3]: location = order_locations[0]['location']
In [4]: location
Out[4]: 1
In [5]: type(location)
Out[5]: <type 'int'>
Однако строка выше возвращаетint, а не объект Location.Я хотел бы иметь возможность каким-либо образом ссылаться на имя местоположения и тип местоположения, например location.name или location.type.Есть ли способ вернуть объект местоположения в аннотации, а не только идентификатор местоположения (требующий отдельного потенциально дорогого поиска)?
Любой совет очень ценится.
Спасибо, Джо