在創建表時,對於auto_now=True與 auto_now_add=True 的區別


在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())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM