[Django] ORM 利用sql extra日期格式化date_format_django项目,model 存储类型为datetime,但是查询出来要返回给前端的需要格式化 ,如-程序员宅基地

技术标签: Django  ORM  

Django框架中models的DateTimeField类型在MySQL数据库中插入的时间格式是“2019-02-16 10:25:04.186496”。
使用普通的ORM查询语句,输出的DateTimeField字段是“datetime.datetime(2019, 2, 16, 10, 8, 44, 642364)”。
如果你使用模版渲染的话,可以在前端页面使用过滤器格式化DateTimeField,获取正确的时间格式,例如:{ { infor.updatetime|date:“Y-m-d H:i:s” }}。
但是,如果我们想通过ajax json获取DateTimeField字段时就会报错,DateTimeField不能直接转换成json。

办法一
使用 for 循环去遍历查询结果,在 for 循环内使用 .strftime(’%Y-%m-%d %H:%M:%S’) 去格式化时间,然后转换成json。
如:

res_list = []
for i in data_obj:
    i['inTime'] = i['inTime'].strftime('%Y-%m-%d %H:%M:%S')
    res_list.append(i)

#
comment_obj.create_time.strftime("%Y-%m-%d %H:%M")

高效的办法

首先确定,Django的原生查询是不支持直接输出格式化后的日期的,那么我们只能使用MySQL的函数了。
使用 extra 可以很好的解决这个问题,使用 extra 可以执行 MySQL 的函数。extra 的内容大家可以自行百度。

# inTime是models中的字段名
list_raw = models.testTable.objects.filter(disable=0)\
            .extra(select={
    "inTime": "DATE_FORMAT(inTime, '%%Y-%%m-%%d %%H:%%i:%%s')"})\
            .values('id', 'showName', 'inTime').order_by('-inTime')

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_19691995/article/details/102717757

智能推荐

hansontable文档_handsontable中文文档-程序员宅基地

文章浏览阅读2.6k次。hansontble文档_handsontable中文文档

This parser does not support specification "null" version "null"异常处理-程序员宅基地

文章浏览阅读1.4k次。第一个java博客,很开心,也很紧张,相信自己会越来越OK!!这个异常出现后,其实就是jar包的原因,xercesImpl和xerces只能有一个包,并且版本可能有要求。其他的原因以后发现再补充。我用这个主要就是用于导出excel文件(使用模板),目前来看使用模板是最简单的导出方式。模板:private void export(List<GridWholeTCA> lis..._this parser does not support specification "null" version "null

分布式ESB: 商业银行SOA演进新路径-程序员宅基地

文章浏览阅读357次,点赞2次,收藏2次。ESB是SOA架构中最重要的组成要素,也是有志于SOA市场的厂商必须重点发力的产品。随着云时代的到来,ESB技术也在不断演进。神州数码融信软件有限公司(神州信息旗下企业)就提出了云中的ESB和分布式ESB。其实,说到神州数码融信软件有限公司,其在SOA领域颇有影响。比如,在银行企业服务总线ESB建设领域,神州数码融信软件有限公司已连续四年市场占有率排..._神州数码esb技术架构

Android---动态权限申请_android 动态申请权限-程序员宅基地

文章浏览阅读7k次,点赞12次,收藏49次。Google 在 Android开始引入了权限申请机制,将所有权限分成了和。App 每次在使用危险权限时需要动态的申请并得到用户的授权才能使用。和:不会直接给用户隐私带来危险。如果你在其清单中列出了正常权限,系统将自动授予该权限。:授予应用访问用户机密数据的权限。如果你在清单文件中列出了危险权限,则用户必须明确批准你的应用使用这些权限。那么危险权限有那些?和等。申请以上权限时,除了要在清单文件中添加权限,还需要通过代码动态申请。_android 动态申请权限

springboot集成elastic job_@elasticjobconf-程序员宅基地

文章浏览阅读813次。pom.xml添加依赖<dependency> <groupId>com.cxytiandi</groupId> <artifactId>elastic-job-spring-boot-starter</artifactId> <version>1.0.0</version></dependency><dependency> <groupId>org.apache.curat_@elasticjobconf

Gradient(梯度) of a scalar field_gradient of-程序员宅基地

文章浏览阅读577次。DefinitionThe gradient of a scalar field ϕ(x,y,z)\phi (x,y,z)ϕ(x,y,z) is defined bygradϕ=∇ϕ=i∂ϕ∂x+j∂ϕ∂y+k∂ϕ∂z.grad \phi=\nabla \phi=\boldsymbol{i} \frac{\partial \phi}{\partial x}+\boldsymbol{j} \frac{\partial \phi}{\partial y}+\boldsymbol{k} \frac{\par_gradient of

随便推点

Linux:Socket CAN开发官方说明文档_linux socketcan error-程序员宅基地

文章浏览阅读1.8k次。文档原名称:can.txt,位于 linux-3.2.0-m3352/Documentation/networking/can.txt。CAN 控制器局域网络协议族之 Readme 文件(aka Socket CAN)。另外在该文档的后边附加一个CAN收发测试程序,用于与下位机通信。目录1 概述 / 什么是 Socket CAN?2 目的 / 为什么要使用 socket API?3 so..._linux socketcan error

最新计算机专业毕业设计题目推荐(新颖选题(1)-程序员宅基地

文章浏览阅读523次,点赞17次,收藏13次。学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

java/php/node.js/python疫苗接种管理系统的设计与实现【2024年毕设】-程序员宅基地

文章浏览阅读93次。springboot基于springboot的小区旧物交易系统的设计与实现。springboot基于微信小程序的大学生科技竞赛管理系统。springboot基于Vuejs的中国名茶销售平台。springboot基于微信小程序的舟袍设计工作室。springboot协同过滤的就业系统的设计与实现。springboot医养结合养老APP的设计与实现。springboot新能源汽车app的设计与实现。springboot基于安卓的教师事务管理系统。springboot基于安卓的接的快接单平台。

Mybatis源码分析(二):源码分析入口引导_mybatis 源码入口-程序员宅基地

文章浏览阅读2.7k次。如果没看Mybatis源码分析(一):源码准备工作,再看本节1. 引导进入spring的源码首先是mybatis对 xml文件 进行解析,那么这个解析的关键配置就是&lt;bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"&gt;&lt;property name="dataSource" re..._mybatis 源码入口

ASUS华硕ZenBook灵耀X逍遥UXF3000E_UX363EA原装出厂预装Win11系统工厂模式安装包_华硕灵耀逍遥原机壁纸-程序员宅基地

文章浏览阅读388次。带有ASUS Recovery恢复功能、自带所有驱动、出厂主题壁纸、Office办公软件、MyASUS华硕电脑管家等预装程序。由于时间关系,绝大部分资料没有上传,不是想要的型号,请联系客服获取。文件格式:HDI,SWP,OFS,EDN,KIT,TLK等多个底包。注:恢复时会清空电脑上所有盘的数据,请提前转移备份好重要资料!所需要工具:16G或以上的U盘(非必需)文件大小:12.25GB。_华硕灵耀逍遥原机壁纸

C语言实现使用keil5编写51单片机设计并制作一个电路_keil5程序-程序员宅基地

文章浏览阅读800次。2、第一次按下K1,最#边的数码管显示 0,其他数码管不亮,第二次按下K1,数 码管显示01,其他数码管不亮,第三次按 下 1,数码管显示012,以此类推,直到 数码管显示0123并锁定状态,即此时 1无 效;使用Keil5编写51单片机的完整程序是可行的,并且可以通过C语言进行实现。1,由4个数码管组成,上电无显示,红色L E 亮,说明可以输入数据;3、按下K2恢复初始状态。_keil5程序

推荐文章

热门文章

相关标签