开发者社区> 问答> 正文

django 下面怎么同时取得不同id下面的文章列表:报错

问题是这样的.
用django开发了一个博客.
博客分类: 新闻(id=1)   图片(id=2)  视频(id=3)  下载(id=4)
可以用  list =  Blog.objects.order_by('-id')  取得全部信息列表
也可以用:news_list = Blog.objects.filter(category=1).order_by('-id')[:8]  取得新闻id下的数据
 
如果我要是想同时取得 新闻 与 视频下的数据 怎么写?
用 data1 = Blog.objects.filter(category=[1,3]).order_by('-id')[:8]  这样的不行.data1 = Blog.objects.filter(category=1 || 3).order_by('-id')[:8] 也不行.
如果想同时取得 id 1,3 或者 1,2,3 下面的数据列表.怎么写? 多谢
 

展开
收起
kun坤 2020-06-09 12:04:37 358 0
1 条回答
写回答
取消 提交回答
  • 可以这么写:   __in 存在于一个list范围内
    data1 = Blog.objects.filter(category__in=[1,3]).order_by('-id')[:8]

    data1 = Blog.objects.filter(category__in=[1,2,3]).order_by('-id')[:8] ###### Q很有用:

    from django.db.models import Q
    
    data1 = Blog.objects.filter(Q(category=1) | Q(category=3)).order_by('-id')[:8]

    ######多谢楼上两位.

    2020-06-09 12:04:43
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载