当前位置: 首页 > news >正文

原生django raw() 分页

def change_obj_to_dict(self,temp):dict = {}dict["wxh_name"] = temp.wxh_namedict["types"] = temp.typesdict["subject"] = temp.subjectdict["ids"] = temp.ids# 虽然产品表里没有替代型号,但是通过sql语句的raw()查询可以查到结果中是包含非实例对象的字段的dict["rates"] = temp.ratesdict["pv"] = temp.pvdict["phone"] = temp.phonedict["manage_status"] = temp.manage_statusdict["names"] = temp.namesdict["status"] = temp.statusreturn dict
models2=AutoWxh.objects.raw('SELECT auto_wxh.id, wxh_name,auto_wxh.type as types,`subject`,auto_wxh.gzh_id as ids,tab2.total_open_rate as rates,tab2.totallys_pv as pv,phone,manage_status,auto_category.name as names,auto_wxh.status as status FROM auto_wxh LEFT JOIN (SELECT gzh_id,SUM(open_rate) AS total_open_rate,SUM(total_pv) as totallys_pv FROM auto_article_list WHERE refdate="20230223" GROUP BY gzh_id) AS tab2 on auto_wxh.gzh_id = tab2.gzh_id LEFT JOIN auto_category on auto_wxh.category_id=auto_category.id ORDER BY tab2.total_open_rate DESC ')
data2 = []
if models2 and len(models2) > 0:for temp in models2:data2.append(self.change_obj_to_dict(temp))
# *****最终获得data2是一个字典的集合
page_obj = Paginator(data2, pagesize)
try:page_data = page_obj.page(page)queryset = page_data.object_listhas_next = page_data.has_next()
except EmptyPage:queryset = []has_next = False
return SuccessResponse({'datas': queryset,'has_next': has_next,'pagenumber':page_obj.count,'pagecount':page_obj.num_pages})

主要思路就是将object对象转换成字典,再将字典装进列表中,打包进

paginator里面

django使用raw()执行sql语句多表查询_神奇洋葱头的博客-CSDN博客_django raw

http://www.lryc.cn/news/20516.html

相关文章:

  • Android 9.0 Settings 搜索功能屏蔽某个app
  • SQL性能优化的47个小技巧,果断收藏!
  • SE | 哇哦!让人不断感叹真香的数据格式!~
  • 运行Qt后出现无法显示字库问题的解决方案
  • 数据库浅谈之共识算法
  • 代码随想录算法训练营 || 贪心算法 455 376 53
  • PMP考前冲刺2.25 | 2023新征程,一举拿证
  • 【自然语言处理】Topic Coherence You Need to Know(主题连贯度详解)
  • C++入门:模板
  • 【MySQL】索引常见面试题
  • 【Web逆向】万方数据平台正文的逆向分析(上篇--加密发送请求)—— 逆向protobuf
  • Amazon S3 服务15岁生日快乐!
  • 【python】函数详解
  • AoP-@Aspect注解处理源码解析
  • 宝塔搭建实战php悟空CRM前后端分离源码-vue前端篇(二)
  • FastASR+FFmpeg(音视频开发+语音识别)
  • 二分查找的实现代码JAVA
  • cesium: 设置skybox透明并添加背景图 ( 003 )
  • 【python】类的详解
  • 西安银行就业总结
  • JavaScript Window
  • 那些开发过程中需要遵守的开发规范
  • EFCore 基础入门教程
  • HTML5 Drag and Drop
  • 惠普m1136打印机驱动程序安装教程
  • 数据增强,扩充了数据集,增加了模型的泛化能力
  • MySQL/Oracle获取当前时间几天/分钟前的时间
  • 如何在Wordpress中使用wp_nav_menu()在<li>及a标记中添加Class
  • Chat Support Board WordPress聊天插件 v3.5.8
  • 2022年网络安全竞赛——数字取证调查attack.pcapng