簡體   English   中英

使用 Django 查詢計算過濾列值的總和時出錯

[英]Error in Calculating the sum of a filtered column value using Django Queries

我有2個模型

class Horses(models.Model):
race = models.IntegerField(null=True)
name = models.CharField(max_length=200, null=True)
owners = models.ManyToManyField(Owners)

class BetOrders(models.Model):
customers =models.ForeignKey(Customers, null = True, on_delete=models.SET_NULL)
horses = models.ForeignKey(Horses, null = True, on_delete=models.SET_NULL)
amountBet = models.FloatField(null = True)
horseprice = models.IntegerField(null=True)
timeOfBet = models.DateTimeField(auto_now_add = True, null = True)

我正在嘗試根據相似的馬名計算amountBet的總和。 我試過這個查詢集,但沒有用

BetOrders.objects.filter(horses__name='white river').annotate(total_sales=Sum('amountBet'))

我可以知道這個查詢有什么問題嗎? 以及獲得過濾值總和的正確方法是什么。 注意:馬名是 FK。 這是我的表的表示

+-------+------------------+
| Horse Name  | Amount Bet |
+-------------+------------+
| jals jiger  |    50      |
| white river |    80      |
| white river |    70      |
| jals jiger  |    10      |
| jals jiger  |    98      |
| chivas      |    10      |
+-------------+------------+

在執行 Group By 查詢時,您需要使用 .values() 和 .annotate() 來觸發“Group By”。 試試下面的:

BetOrders.objects.values('horses__name').annotate(total_sales=Sum('amountBet')).filter(horses__name='white river')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM