[英]In Django filter statement what's the difference between __in and equal sign (=)?
如果不知道模型上的關系是什么,我們就不能肯定地說。 我能給你的是一種檢查查詢的方法,它會告訴你它們是否相同:
print your_qs.filter(league_pk__in=[1,2,3]).query
print your_qs.filter(league=[1,2,3]).query
並查看生成的sql以查看db級別的實際情況。
我認為大致是你的第一個查詢,它正在做:
SELECT * FROM model WHERE model.league_id IN (SELECT id FROM league WHERE id IN(1, 2, 3))
對於第二個查詢,它正在執行:
SELECT * FROM model WHERE model.league_id IN (1, 2, 3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.