Django 的过滤和EXCLUDE有区别吗?如果我有

self.get_query_set().filter(modelField=x)

我想添加另一个标准,下面两行代码之间是否有意义的区别?

self.get_query_set().filter(user__isnull=False, modelField=x)

self.get_query_set().filter(modelField=x).exclude(user__isnull=True)

它们是被认为是更好的实践,还是在功能和性能上是相同的?

推荐答案

两者都是惰性判断的,所以我希望它们的性能相当.SQL可能不同,但没有真正的区别.

Django相关问答推荐

POST_SAVE接缝有错误

我希望用户能够预订相同的桌子,但不是在同一时间

Django中的DateTimeField到DateField

通过在其他查询中使用来过滤对象

Templatetag 在 Django 4.2 模板 IF 条件中不起作用

在 Django 中重组多对多字段

在 Serverless + Lambda + API Gateway HTTP API 上运行的 Django 应用程序正在重写链接以使用默认前缀

如何在 Django 模板视图中显示我的数据?

如何在 ModelViewSet 逻辑中读取查询字符串值?

Django ORM __in 但不是精确的,包含不区分大小写的?

在 Django Admin change_list 视图中更改 list_editable 字段时保存 Django 模型

QuerySet对象在bulk_update中没有属性pk

TestCase 类中的 setUpClass、setUpTestData 和 setUp 有什么区别?

Django 和 VirtualEnv 开发/部署最佳实践

Django unique=True 不工作

如何在 Django 中测试自定义模板标签?

Django:如何过滤属于特定组的用户

django 我们可以在预取相关模型上 Select 一个字段吗?

Django 应用程序运行良好,但收到 TEMPLATE_* 警告消息

如何将类、id、占位符属性添加到 django 模型表单中的字段