gpt4 book ai didi

django - 在 Django 中使用 ".filter().filter().filter()..."有什么缺点吗?

转载 作者:行者123 更新时间:2023-12-04 10:02:12 30 4
gpt4 key购买 nike

以下两个调用是否解析为 Django 中的等效 SQL 查询?

链接多个调用

Model.objects \
.filter(arg1=foo) \
.filter(arg2=bar) \
...

将所有 args 包装在一起:
Model.objects \
.filter(arg1=foo, arg2=bar)

我希望代码可读(过滤器调用比我展示的多得多),但前提是不牺牲性能。

最佳答案

更新:

无视这个答案。看到这个更好,correct answer .
感谢 @Sam抬起头来。

旧答案:

Are the following two calls resolved to the equivalent SQL query in Django?



简短的回答:是的。它们将生成等效的查询。

我用我正在使用的模型验证了这一点。生成的查询在功能上是相同的。不一样的 filter条件是 AND在查询中一起编辑。

I'd like code to be readable (there are MANY more filter calls than I've shown), but only if there's no sacrifice to performance.



实现可读性的一种方法是使用字典来收集所有过滤条件。例如
conditions = dict(arg1 = foo, arg2 = bar, ....)
conditions.update(argN = baz)

Model.objects.filter(**conditions)

关于django - 在 Django 中使用 ".filter().filter().filter()..."有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3733324/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com