我正在尝试为我正在构建的Django站点构建搜索,在该搜索中,我正在使用三种不同的模型进行搜索。为了在搜索结果列表中进行分页,我想使用通用object_list视图来显示结果。但要做到这一点,我必须将三个查询集合并为一个。
我怎么能这样做呢?我试过这个:
result_list = []page_list = Page.objects.filter(Q(title__icontains=cleaned_search_term) |Q(body__icontains=cleaned_search_term))article_list = Article.objects.filter(Q(title__icontains=cleaned_search_term) |Q(body__icontains=cleaned_search_term) |Q(tags__icontains=cleaned_search_term))post_list = Post.objects.filter(Q(title__icontains=cleaned_search_term) |Q(body__icontains=cleaned_search_term) |Q(tags__icontains=cleaned_search_term))
for x in page_list:result_list.append(x)for x in article_list:result_list.append(x)for x in post_list:result_list.append(x)
return object_list(request,queryset=result_list,template_object_name='result',paginate_by=10,extra_context={'search_term': search_term},template_name="search/result_list.html")
但这不起作用。当我尝试在通用视图中使用该列表时,我遇到了一个错误。该列表缺少克隆属性。
如何合并page_list
、article_list
和post_list
这三个列表?