在models.py中創建表結構時
from django.db import models class Book(models.Model): title = models.Charfield(max_length=32) date = models.Datefield(auto_now = True)
那么在更新數據是兩種方法對auto_now的影響:
#(1)update方法: models.Book.objects.filter(title='asd').update(title='ads') #update方法不會改變date的時間,還是保存着創建時的時間點 #(2) .save()方法: obj = models.Book.objects.filter(title='asd').first() obj.title='ads' obj.save() #.save()方法是保存了更改時的時間點
如果我們當時設定的是auto_now_add=True時:
from django.db import models class Book(models.Model): title = models.Charfield(max_length=32) date = models.Datefield(auto_now_add = True)
此時,update方法和.save()方法對時間都是無效的。
那么我們如何手動的更改時間呢?
方法如下:
models.Book.objects.filter(title='asd').update(date=datetime.datetime.now())