Django auto_now=True 不更新

python 复制代码
create_time = models.DateTimeField(db_column="CreateTime", auto_now_add=True)
update_time = models.DateTimeField(db_column="UpdateTime", auto_now=True)

现象:

update_time 的auto_now设置为True,更新了表格里的某个属性的值,却发现update_time和create_time始终一致,保持最开始的创建时间。

原因:

因为更新时用的filter的update。

filter的update 通常用于批量更新数据,直接调用sql语句,不通过model层,所以导致了update_time不更新。

python 复制代码
models.AbilityScore.objects.filter(employee_id=employee_id, 
                                            ability_id=ability_id).update(upcoming_value=upcoming_value)

解决:

先通过filter判断出有该项记录后通过get获取该项记录也即model类的一个实例对象,通过该实例的属性赋值方式来更新,即可使update_time更新,最好记得调用save()。

python 复制代码
        if models.AbilityScore.objects.filter(employee_id=employee_id, ability_id=ability_id):
            # models.AbilityScore.objects.filter(employee_id=employee_id,
            #                                    ability_id=ability_id).update(upcoming_value=upcoming_value)
            employee_ability = models.AbilityScore.objects.get(employee_id=employee_id, ability_id=ability_id)
            employee_ability.upcoming_value = upcoming_value
            employee_ability.save()

参考:django model的update时auto_now不被更新的原因 - 代码先锋网

相关推荐
好家伙VCC6 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
orange_tt7 小时前
Djiango配置Celery
数据库·sqlite
前端玖耀里7 小时前
如何使用python的boto库和SES发送电子邮件?
python
serve the people7 小时前
python环境搭建 (十二) pydantic和pydantic-settings类型验证与解析
java·网络·python
小天源7 小时前
Error 1053 Error 1067 服务“启动后立即停止” Java / Python 程序无法后台运行 windows nssm注册器下载与报错处理
开发语言·windows·python·nssm·error 1053·error 1067
喵手8 小时前
Python爬虫实战:HTTP缓存系统深度实战 — ETag、Last-Modified与requests-cache完全指南(附SQLite持久化存储)!
爬虫·python·爬虫实战·http缓存·etag·零基础python爬虫教学·requests-cache
喵手8 小时前
Python爬虫实战:容器化与定时调度实战 - Docker + Cron + 日志轮转 + 失败重试完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·容器化·零基础python爬虫教学·csv导出·定时调度
2601_949146538 小时前
Python语音通知接口接入教程:开发者快速集成AI语音API的脚本实现
人工智能·python·语音识别
寻梦csdn8 小时前
pycharm+miniconda兼容问题
ide·python·pycharm·conda
Java面试题总结9 小时前
基于 Java 的 PDF 文本水印实现方案(iText7 示例)
java·python·pdf