【发布时间】:2026-01-20 11:35:02
【问题描述】:
我正在尝试在以下循环中使用 Django 进行一些有效的查询:
for division in divisions:
playoffs = league.playoff_set.filter(division=division, double_elimination=True)
我想也许在循环之前过滤playoffs,只选择带有double_elimination=True的那些会增强它:
playoffs = league.playoff_set.filter(double_elimination=True)
for division in divisions:
division_playoffs = playoffs.filter(division=division)
但现在我担心这会在循环中的每次运行中触发来自 playoffs 的查询,而不是过滤先前检索到的结果。
它是按预期工作还是像我担心的那样工作?我应该改用Q 来构建这些性能更好的查询吗?
【问题讨论】:
-
Django 查询集是惰性的,在您需要结果之前它们不会执行。
标签: django