# Kod znaleziony na stackoverflow
models.py
class Ticket(models.Model):
...
price = IntegerField() # cena biletu
...
class ClientPurchase(models.Model):
...
purchase = models.ManyToManyField(Ticket, verbose_name="Zakupione bilety")
...
...
@property
def calculated_price(self):
return sum([p.price for p in self.purchase])
W admin.py
@admin.register(models.ClientPurchase)
class ClientPurchaseAdmin(admin.ModelAdmin):
readonly_fields = ('calculated_price',)
W template wpisuje:
{% for obj in object_list %}
{{ obj.calculated_price }}
{% endfor %}
Kod zapożyczony z SO (jako odpowiedź), ale u mnie zupełnie nie działa.
W Django Admin dostaje błąd:
Django Version: 4.1.6
Exception Type: TypeError
Exception Value:
'ManyRelatedManager' object is not iterable
A template nie chce wyświetlić wyliczonej wartości calculated_price.
Odpowiedź znalazłem - poniżej w komentarzu!