Bu yüzden bir harcama sayfası django uygulaması yapıyorum ve tüm girilen masrafların toplamını oluşturmaya çalışıyorum.django şablonlarında özel yönetici işlevini çağırma
Ben toplamını hesaplamak için özel bir yöneticisi oluşturduk:
class ExpenseManager(models.Manager):
def price_sum(self):
return super(ExpenseManager, self).aggregate(total_price = Sum('price'))['total_price']
Ve modeline eklemiş:
class Expense(models.Model):
...
objects = models.Manager()
price_object = ExpenseManager()
...
ben kabuğunda yürüttüğünüzde çünkü benim yöneticisi çalıştığını biliyorum Harcamalarımın doğru toplamını aldım - yani Expense.price_object.price_sum()
'u koydum ve Decimal('254.77')
'a geri dönüyorum - ama bunu şablonuma getirmeye çalıştığımda boş görünüyor.
örneğin, benim değişkeninde birkaç farklı yollar koyarak denedim ama hiçbiri çalıştı:
{{price_object.price_sum}}
veya
{{expense.price_object.price_sum}}
ya da beni umutsuz durumda ...
{% for p in expense.price_object %} {{p.price_sum}} {% endfor %}
veya
{% for p in expense.price_object.price_sum %} {{p}} {% endfor %}
ama evet ... sayfayı yüklediğimde hiçbir şey görünmez. Biri yardım edebilir mi?
Şablonda nasıl çağırdınız? – sha256
@ sha256, Daniel Roseman'ın yanıtında olduğu gibi, şablona bir Model sınıfı nesnesi iletmeniz yeterlidir. Her iki monitöre de – dragoon
+1. yararlı – sha256