我有以下Django的数据库型号:Django模型:总金额在多个外键字段值
class Entry(models.Model):
author = models.ForeignKey(User);
target = models.ForeignKey(User);
points = models.IntegerField(default=0);
用户可以给其他用户点。目标是计算每个用户元组的点数总和。显而易见的方法是使用迭代,但这会导致许多不必要的查询。虽然这是一个相当简单的SQL查询,但我无法让它与djangos API一起工作。我玩了annonate,聚合和Q过滤器,但无法达到预期的效果。
最好的结果会是这样的:
[{'user_one_pk': 1, 'user_two_pk': 2, 'sum__points': 6},
{'user_one_pk': 1, 'user_two_pk': 3, 'sum__points': -3},
{'user_one_pk': 2, 'user_two_pk': 3, 'sum__points': 9}]
编辑:澄清独特的元组的编辑结果。
最好的办法是做它在数据库中。写一个简单的函数,它是否 – Mox