当前位置:  开发笔记 > 编程语言 > 正文

在Django过滤器语句中__in和等号(=)之间有什么区别?

如何解决《在Django过滤器语句中__in和等号(=)之间有什么区别?》经验,为你挑选了1个好方法。

在这个问题之后,我想知道写作是否有任何不同

.filter(league_pk__in=[1,2,3])

.filter(league=[1,2,3])

我已经试过了两个,他们似乎在我的代码中返回相同的结果,但在文档中没有任何地方说它们是相同的(如同__exact).

我可以安全地假设这两种形式是平等的吗?它在哪里记录?



1> wim..:

如果不知道模型上的关系是什么,我们就不能肯定地说.我能给你的是一种检查查询的方法,它会告诉你它们是否相同:

print your_qs.filter(league_pk__in=[1,2,3]).query
print your_qs.filter(league=[1,2,3]).query

并查看生成的sql以查看db级别的实际情况.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有