使用orm查询,得到的结果类型是QuerySet,这种类型drf可以进行下一步处理, 使用原生sql查询,例如
UserInfo.objects.raw(sql,(params))
得到的结果类型是RawQuerySet,这种类型drf不能进行下一步处理, 那么问题来了,我既想要用原生sql查询,又要使用drf处理结果,怎么办? 二者结合咯。
看下图代码,select编写复杂的过滤条件
select = {
'read_flag':'exists (select * from user_pro_notice where user_id = %s and msg_id=pro_msg.id) '
}
query = ProMsg.objects.filter(type=_type,project_id=project_id).extra(select=select,select_params=(user_id,)).order_by('-update_time')
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有