0
這裏是我的代碼:objects.all()註釋結果不正是我想要
型號:
class Category(models.Model):
name = models.CharField(max_length=100)
def get_month_sum_series(self):
return [('2012-01-01',100)]
class Operation(models.Model):
date = models.DateField()
value = models.DecimalField(max_digits = 9, decimal_places = 2)
category = models.ForeignKey(Category, null = True)
comments = models.TextField(null = True)
view.py:
from django.template import Context, loader
from accounts.models import Category, Operation
from django.http import HttpResponse
from django.db.models import Sum, Max
def index(request):
category_list = Category.objects.all().annotate(suma = Sum('operation__value'))
template = loader.get_template('reports/index.html')
context = Context({
'category_list' : category_list,
})
return HttpResponse(template.render(context))
模板:
{% if category_list %}
<table>
{% for category in category_list %}
<tr><td><a href="{{ category.id }}/">{{ category.name }}</a></td><td style="text-align:right">{{ category.suma|default:0|currency }}</td>
{% for month_sum in category.get_month_sum_series %}
<td>{{ month_sum.1|default:0|currency }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
{% else %}
{% endif %}
category.get_month_sum_series無效....
,但如果我改變
category_list = Category.objects.all().annotate(suma = Sum('operation__value'))
到
category_list = Category.objects.all()
category.get_month_sum_series沒有作品..... (當然,但註釋部分 - 不)
如何更改category_list或查看以獲得他們兩個?
你在這兩種情況下「不起作用」是什麼?如果您在模板中獲得空輸出,請嘗試在shell中執行相同的操作:get queryset,從中獲取項目,打印項目。 – ilvar 2012-04-27 05:02:18
是的,我的意思是空輸出。在shell中,我可以看到正確的結果。 – 2012-04-29 19:41:58