在 Django QuerySet 中,在查询时,在查询中的 values() 之前使用 exclude() 真的更好吗?
例如:
query_obj = TestModel.objects.values().exclude(somefield='somevalue')
这是正确的方法还是,
query_obj = TestModel.objects.exclude(somefield='somevalue').values()
这个?
或者两者的工作方式相同?
调用
Model.objects
还没有执行查询。因此,如果您以 values()
开头,那么它适用于表格中的所有条目。然后执行exclude()
,不查询数据库。
如果您以
exclude()
开始,那么第一次数据库调用会被排除的对象减少。 values()
之后已经在较小的 QuerySet 上执行了。它可能很有用,尤其是在数据库很大的情况下。