gpt4 book ai didi

Django:链接 filter() 函数是否会产生与使用多个 kwargs 相同的 SQL?

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

在 Django 中,以下两个片段是否产生相同的底层 SQL 查询?

qs = MyModel.objects.filter(group=1, type=2) 

qs = MyModel.objects.filter(group=1).filter(type=2) 

最佳答案

这实际上取决于是否存在连接或跨区查找,尤其是通过 M2M 关系。例如

>>> print User.objects.filter(groups__gt=1).filter(groups__lt=2).query
SELECT "auth_user"."id", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user" INNER JOIN "auth_user_groups" ON ("auth_user"."id" = "auth_user_groups"."user_id") INNER JOIN "auth_user_groups" T4 ON ("auth_user"."id" = T4."user_id") WHERE ("auth_user_groups"."group_id" > 1 AND T4."group_id" < 2 )

>>> print User.objects.filter(groups__gt=1, groups__lt=2).query
SELECT "auth_user"."id", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user" INNER JOIN "auth_user_groups" ON ("auth_user"."id" = "auth_user_groups"."user_id") WHERE ("auth_user_groups"."group_id" < 2 AND "auth_user_groups"."group_id" > 1 )

关于Django:链接 filter() 函数是否会产生与使用多个 kwargs 相同的 SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11026401/

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