Django如何合并两个QuerySet对象

 时间:2026-02-13 12:52:52

1、python 自带的模块itertools,可以使用 里面的chain函数

引入

from itertools import chain

Django如何合并两个QuerySet对象

2、现在我们有一个任务:

需要查询文章(根据文章的题目和文章的标签进行模糊查询)

这样我们就需要先根据文章题目查询,然后根据文章的标签进行查询(一个标签对应多个文章),然后合成一个QuerySet对象,最后去重

Django如何合并两个QuerySet对象

3、写逻辑并利用chain函数合并两个QuerySet对象

#逻辑

@login_required(login_url="/user/account/")  #登录核验


def search(request): #模糊查询(涵盖主题的title和标签)
   if request.method == "POST":
       key = request.POST.get('key').strip()
       context = {}
       titles = Title.objects.filter(title__icontains=key)
       tags = Tag.objects.filter(tag_name__icontains=key)
       for tag_obj in tags:
           titles = chain(titles,tag_obj.title_set.all())
       titles = list(set(titles))  #去重
       context["titles"] = titles
       context["key"] = key
       return render(request,'forum/search_list.html',context)
   else:
       return HttpResponseRedirect("/forum/")

Django如何合并两个QuerySet对象

4、实现结果

Django如何合并两个QuerySet对象

Django如何合并两个QuerySet对象

1、【1】引入chain函数:from itertools import chain

【2】使用 a = chain(QuerySet1,QuerySet2)来合并两个QuerySet对象

  • 天津中专怎么报名
  • js如何判断多组数字是否交叉或者重复
  • 考研复习计划
  • photoshop cs6 界面的都是什么意思?
  • 怎样编译less文件,怎样把less文件编译成css
  • 热门搜索
    海南三亚旅游 磐安旅游 太白山旅游攻略 衡阳旅游 喀纳斯旅游 云南旅游职业学院 冰岛旅游 泰国旅游报价 旅游目的地 中华人民共和国文化和旅游部