auto_now_add
auto_now_add大部分情况适用于'创建时间'字段的属性,其会在数据添加的时候,生成数据库系统当前时间
auto_now
auto_now 大部分情况适用于'更新时间,修改时间'等字段的属性,其会在每次更新数据的时候,生成数据库系统当前时间
注意:
1. auto_now_add和auto_add首次创建都会入库当前时间
按理说如果我们更新数据的话auto_now会更新我们数据库时间
def test(request):
# 这种更新方式,auto_now不会生效
ret = models.UserInfo.objects.filter(name='李四').update(
name = '王五',
)
return HttpResponse('ok')
我们看看数据,实际上数据没有更新。这个就是auto_now的坑。auto_now如果使用update语句是不会更新时间的。
解决办法有两种:
1.update时手动传入更新时间
models.UserInfo.objects.filter(name='张三').update(name = '王五', t4 = datetime.now())
2.使用save方法更新数据
ret = models.UserInfo.objects.filter(name='王五').first()
ret.name = '赵六'
ret.save()