2017-05-18 4 views
0

私は現在Django QuerySetを使って設計することができない単純なタスクを持っています。以下のモデルが使用されます。DjangoがPKを追加するステートメントによってグループを破壊する

class Accountdata(models.Model): 
amount = models.DecimalField(max_digits=9, decimal_places=2) 
bookingdate = models.DateField() 
renter = models.ForeignKey(Renter, null=True, blank=True) 

私がやりたいことのすべては、月額賃借人で払っすべての金額を合計したことにより、グループを作成している私が使用

(賃借人が複数回に月を支払うことができます)以下のクエリセット(1人の特定の賃借人用):

Accountdata.objects.filter(renter_id=16).annotate(month=TruncMonth('bookingdate'), amountSum=Sum('amount')).values('month', 'amountSum').order_by() 

残念ながら結果は間違っています。 私はDjangoは(上で何が起こっているかを確認するクエリセット「クエリ」Methodeのを使用)group by句に主キーを追加することを考え出し:

SELECT DATE_TRUNC(「月」、「accountdata」 "bookingdate。 "renter_id" = 16 GROUP BY "accountdata"。 "id"、DATE_TRUNC( ') "のように、"月 "と同じようにSUM(" accountdata "。" amount "月「 『accountdata』。 『bookingdate』)」

Djangoはこれをやっている理由私はクエリセットの 『値』セクション内のIDを持っていないので、私はKOWません。 ジャンゴ1.11とPython 3.6.1使用

答えて

0

試してみてください。

AccountData.objects.filter(
    renter__id=16 
).annotate(
    month=TruncMonth('bookingdate') 
).values(
    'month' 
).annotate(
    amountSum=Sum('amount') 
) 
+0

をありがとう!これがトリックです。 – BJS

+0

喜んで助けました=) –

関連する問題