モデル:
class Category(models.Model):
name = models.CharField(max_length=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)
ここで、13 列のビューを作成します。
カテゴリ名 | -11 | -10 | -9 | ... | -1 | 0
例えば。
...食品.. | $123.00 | $100.14 | ... | $120.13| $54.12
.服| $555.23 | $232.23 | ... | $200.12| $84.44
ここで、たとえば $123.00 は、11 か月前、$100.14 - 10 か月前に作成されたカテゴリの食品の操作の値の合計です - $54.12 は当月の合計です。
私はたくさんグーグルで検索しましたが、ほとんどの例は単純です-関連するクラス(カテゴリ)なし
回答1の提案後の正解:
def get_month_sum_series(self):
import qsstats, datetime
from django.db.models import Sum
qss = qsstats.QuerySetStats(self.operation_set.all(), date_field='date', aggregate_field='value',aggregate_class=Sum)
today = datetime.date.today()
year_ago = today - datetime.timedelta(days=365)
return qss.time_series( start_date=year_ago, end_date=today, interval='months')