Django Sum по категориям
Простите, если вопрос уже был задан в другом месте. У меня есть инструмент путешествий. У меня есть модель путешествия, содержащая модель деятельности. Каждый вид деятельности имеет категорию и цену. Я хотел бы сложить цены на мероприятия для каждой категории, и я признаю, что застрял.
models.py :
class Activity(models.Model):
TRANSPORT = 'Transport'
HEBERGEMENT = 'Hébergement'
RESTAURATION = 'Restauration'
LOISIR = 'Loisir'
ROLE_CHOICES = (
(TRANSPORT, 'Transport'),
(HEBERGEMENT, 'Hébergement'),
(RESTAURATION, 'Restauration'),
(LOISIR, 'Loisir'),
)
category = models.CharField(max_length=30, choices=ROLE_CHOICES)
trip = models.ForeignKey(Trip, null=True, blank=True, on_delete=models.SET_NULL)
place = models.ForeignKey(Place, null=True, on_delete=models.SET_NULL)
date_start = models.DateField(default=date.today)
time_start = models.TimeField(auto_now=False, auto_now_add=False, null=True, blank=True)
date_end = models.DateField(default=date.today)
time_end = models.TimeField(auto_now=False, auto_now_add=False, null=True, blank=True)
visitor = models.ManyToManyField(Character)
price = models.DecimalField(max_digits=5, decimal_places=2, null=True, blank=True)
prepaid = models.BooleanField(null=True)
class Meta:
verbose_name_plural = "Activities"
views.py :
def travel_detail(request, travel_id):
travel = get_object_or_404(Trip, id=travel_id)
activities = Activity.objects.filter(trip_id=travel_id)
travellers = travel.traveller.all().order_by("last_name", "first_name")
prices = Activity.objects.aggregate(Sum('price'))
template = 'travel/travel_detail.html'
context = {
'travel': travel,
'activities' : activities,
'travellers' : travellers,
'prices' : prices,
}
return render(request, template, context)
шаблон :
{% for price in prices %}
{{prices}}
{% endfor %}
Мой шаблон пока возвращает следующее: {'price__sum': Decimal('43.6000000000000')}