这是一件非常奇怪的事情,因为我知道|操作符应该在不复制对象的情况下创建两个queryset的并集。我正在尝试执行查询搜索,并获取要在页面上显示的对象集。其中一套是用来装柱子的。
  
  
   以下是我的代码片段:
  
  if query:
        block_list = Block.objects.filter(Q(name__icontains=query) | Q(tags__slug__icontains=query))
        user_list = CustomUser.objects.filter(Q(first_name__icontains=query) | 
                    Q(last_name__icontains=query) | Q(username__icontains=query))
        post_list = Post.objects.filter(Q(tags__slug__icontains=query))
        post_list_by_title = Post.objects.filter(Q(title__icontains=query))
        print(post_list)
        print(post_list_by_title)
        print(post_list | post_list_by_title)
  
  
  <QuerySet []>
<QuerySet [<Post: Post1>]>
<QuerySet [<Post: Post1>, <Post: Post1>, <Post: Post1>]>
  
   如果你想知道我为什么要按标签和标题拆分post_列表,我原来有:
  
  post_list = Post.objects.filter(Q(tags__slug__icontains=query) | Q(title__icontains=query))
  
  
  <QuerySet [<Post: Post1>, <Post: Post1>, <Post: Post1>]>
  
   都一样。你知道为什么会这样吗?