【发布时间】:2015-08-15 07:52:21
【问题描述】:
我正在开发一个程序来跟踪你已经在 dota2 上玩过的人,但我不知道如何将此 sql 查询转换为 django 查询。
模型是:
class Match(models.Model):
...
class Account(models.Model):
...
class MatchPlayer(models.Model):
match = models.ForeignKey(Match)
player_account = models.ForeignKey(Account)
...
我想翻译的查询是这样的:
SELECT count(*), dmp1.player_account_id, dmp2.player_account_id
FROM matchplayer dmp1
JOIN matchplayer dmp2 on dmp1.match_id = dmp2.match_id
WHERE dmp1.player_account_id=<some account id>
GROUP BY 2, 3
ORDER BY 1 desc
是否可以将其转换为 django 查询或者我必须将其用作 SQL?
【问题讨论】:
-
我相信这是可能的,但我没有方便的例子。查看docs.djangoproject.com/en/1.8/ref/models/querysets/#extra 和docs.djangoproject.com/en/1.8/ref/models/querysets/#id7 请记住,您可以链接过滤器,并且在您实际使用数据之前不会评估查询。
-
我很好奇,您将如何填充该数据库?
-
有一个rest api,您可以在其中获取一些匹配数据。 dota2dev forum 有一些文档
标签: python django join orm django-queryset