class Consommation(models.Model):
entree = models.ForeignKey(Entree, models.CASCADE, verbose_name="L'entree", null=True, blank=True)
food = models.ForeignKey(Meals, models.CASCADE, verbose_name='Plat de resistance', null=True, blank=True)
dessert = models.ForeignKey(Dessert, models.CASCADE, verbose_name='Dessert', null=True, blank=True)
boisson = models.ForeignKey(Boisson, models.CASCADE, verbose_name='Boisson', null=True, blank=True)
autres = models.ForeignKey(Autres, models.CASCADE, verbose_name='Snacks', null=True, blank=True)
consomme_le = models.DateTimeField(default=timezone.now, editable=False)
vipcustomer = models.ForeignKey(VipCustomer, models.CASCADE, null=True, blank=True,
verbose_name='Client prestigieux', related_name='vip_consommations')
def get_absolute_url(self):
return reverse('clients:consommation_detail', kwargs={'pk': self.pk})
def __str__(self):
return 'Consommation numero :' + str(self.id)
@staticmethod
def get_nom(item, _default=' '):
if item:
return item.nom
return _default
@staticmethod
def get_price(item, _default=0):
if item:
return item.price
return _default
def total_consommation(self):
get_price = Consommation.get_price
return get_price(self.entree) + get_price(self.food) + get_price(self.dessert) + get_price(
self.boisson) + get_price(self.autres)
Я пытался получить общее количество клиентов:
def total(self):
return self.vipcustomer.vip_consommations.annotate(Sum(self.total_consommation()))
в шаблоне, который у меня есть:
{% for consommation in vipcustomer.vip_consommations.all %}
<ul>
<li>
<a href="{% url 'clients:consommation_detail' pk=consommation.pk %}">
</li>
</ul>
{% endfor %}
Total : <strong>{{ vipcustomer.vip_consommations.total}} MRO</strong>
Как сложить суммы дляVIP-клиент, который является внешним ключом к завершению?