0
看看以下情形时:如何避免N + 1在Django计数
我有一个User
模型,属于用户的Address
模型。
在用户索引中,我需要与用户信息一起显示用户有多少个地址,但是它会生成N + 1个查询,因为我每次调用count
时,都会为该用户ID执行附加查询。
我该怎么做?我读到select_related
但我试图使它以相反的顺序...
在SQL它可以被翻译为:
SELECT user.*,
(SELECT count(*) FROM address WHERE address.user_id = user.id) AS address_count
FROM user
有没有办法让Django的查询集上面的SQL ?
精彩!这正是我想要的,谢谢! –
@IgorBelo - 不用担心,尽情享受吧! – Sayse