通过给DateTimeField(时间字段)添加auto_now可以实现数据添加和修改时自动获取当前的时间,但是直接对其进行修改时,会导致修改不成功。这是因为规定了auto_now与auto_now_add的话,该字段就变成了只读的了。
因此我们可以通过定义当前时间始终为默认值的方法实现同样的方法,而且还可以修改。
步骤:
1.首先先在models.py顶部引入timezone功能模块:
from django.db import models
import django.utils.timezone as timezone
2.在目标字段进行配置:
add_time = models.DateTimeField('添加时间',default=timezone.now)
这样便可以进行修改了:
#此段代码仅供参考
totalHistory.add_time = Day.objects.get(id=12).time
totalHistory.save() #修改完别忘了save
补充:
1.
auto_now可以在数据添加和修改时自动获取当前的时间
auto_now_add仅在数据添加时自动获取添加时的时间
2.当使用auto_now时,数据并未更新。可能是因为通过update方法修改后,没有对目标使用save()所导致的。