更快的方法来获取与Django的m2m关系中的_set.all()值

时间:2015-02-20 09:29:16

标签: python django

我看了this并提出了一个问题。

我们在这里得到所有文章:

p2.article_set.all()

获取那些文章的id的快速和低number_of_queries_to_db方式是什么?

我使用此代码:

set(i['id'] for i in p2.article_set.all().values('id'))

它是否正确或有另一种最快的方法来做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:1)

最快的方法是使用values_list()方法:

set(p2.article_set.all().values_list('id', flat=True))

答案 1 :(得分:0)

你可以做得更短:

p2.article_set.only('id').all()

但我认为SQL查询是一样的。