Django过滤器,过滤器返回超过此源

时间:2018-04-06 09:23:59

标签: django filter orm

    print("Step 1",invs.count()) # -> 1000 # invs type: query
    invs2 = invs.filter(field___fields2__fields3=i) # i type:int
    print("Step 2",invs2.count()) # -> 40000

过滤函数返回的原点是否正常?

谢谢。

2 个答案:

答案 0 :(得分:0)

是的,文档中的整个部分都是解释它的

Lookups that span relationships

在大绿色音符区域内,进一步低于"跨越多值关系"标题为

  

但是,与使用filter()时的行为不同,这不会基于满足这两个条件的条目限制博客。为了做到这一点,即选择所有不包含2008年发布的“Lennon”条目的博客,您需要进行两次查询:

答案 1 :(得分:0)

相关信息可在distinct()的说明中找到 引用:

  

返回在其SQL查询中使用SELECT DISTINCT的新QuerySet。这样可以消除查询结果中的重复行。

     

默认情况下,QuerySet不会消除重复的行。实际上,这很少是一个问题,因为像Blog.objects.all()这样的简单查询不会引入重复结果行的可能性。 但是,如果您的查询跨越多个表,则在评估QuerySet时可能会出现重复的结果。当您使用distinct()时。

相关问题