これが私のコードです:
モデル:
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)
ビュー.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 または view を変更する方法は?