Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django2总金额_Django_Aggregate_Django Queryset - Fatal编程技术网

Django2总金额

Django2总金额,django,aggregate,django-queryset,Django,Aggregate,Django Queryset,我有两张桌子。表A为 +--+------------------+ | ID | Fastivalname | +--+------------------+ | 1 | 2020Xmas | +--+------------------+ | 2 | 2019Xmas | +--+------------------+ | 3 | 2020Thanksgiving | +--+------------------+ | 4 | 2019Th

我有两张桌子。表A为

+--+------------------+ 
| ID |    Fastivalname    |
+--+------------------+ 
| 1   |    2020Xmas   |
+--+------------------+ 
| 2  |     2019Xmas    |
+--+------------------+ 
| 3 | 2020Thanksgiving |
+--+------------------+ 
| 4 | 2019Thanksgiving |
+--+—————————+ 
Fastival是表B的ForeignKey,表B是

+--+------------------+ ------------------+------------------+
| ID |    fastival_name_id    |        money   |        useofmoney    |
+--+------------------+ ------------------+------------------+
| 1   |        1         |     100        |              game
+--+------------------+ ------------------+------------------+
| 2  |         1        |      20         |              clothes
+--+------------------+ ------------------+------------------+
| 3 |          3        |    50           |              food
+--+------------------+ ------------------+------------------+
| 4 |         4         |      10         |              game
+--+------------------+ ------------------+—————————+
| 1   |         2       |      30         |              food
+--+------------------+ ------------------+------------------+
| 2  |         3        |      15         |              game
+--+------------------+ ------------------+—————————+
而models.py是:

class TableA(models.Model):
    Fastivalname = models.CharField(max_length=50)

class TableB(models.Model):
    fastival_name = models.ForeignKey(to=TableA, related_name="TableA_Fastival_name", on_delete=models.CASCADE)
    money = models.IntegerField(default=0)
    useofmoney = models.CharField(max_length=200, null=True, blank=True) 
请有人告诉我如何在Django2中获得“2020xxx的
游戏
中的金额”


我尝试了
context[“money”]=TableB.objects.filter(fastival\u id=TableA.objects.filter(Fastivalname\u startswith=2020.values('id')[0]['id']).filter(useofmoney=“game”).aggregate(Sum('money'))['money']
。但回答是“无”…

您可以通过对
TableB
的单个查询来执行此操作,并使用双下划线语法对相关模型/表执行联接/筛选

TableB.objects.filter(
    fastival__Fastival__startswith='2020',
    useofmoney='game'
).aggregate(total=Sum('money'))['total']