auto_add_now和auto_now
這兩個“小妖精”可磨壞我了
今天就來搞搞你━┳━ ━┳━
auto_now默認=False:
當對象被存儲時自動將對象的時間更新爲當前時間,可以用來比如說博客的最近更新中。當執行Model.save()操作時自動更新,但當通過其他的途徑比如QuerySet.update()更新其他的內容時,它不會自動更新
注意:不能修改它的默認產生的值
auto_add_now默認=False:
儲存當對象被創建時的時間,可以用來存儲比如說博客什麼時候創建的,後來你再更改博客,它的值也不會變。
即使你指定了默認值,它還是會忽略你的存在而依然我行我素。除非拿出你的殺手鐗(auto_add_now=True這樣子設置是沒有用的):
- 對於DateField:default=date.today(來源:date.date.today())
- 對於DateTimeField:default=timezone.now(來源:django.utils.timezone.now())
劃重點:
- auto_add_now,auto_now與default是互斥的,也就是說,當你把它仨或者其中的倆放一塊兒就會報錯
- 當你將auto_add_now,auto_now設置爲True 會引起editable=False和blank=True(editable若爲False,在admin界面或其他的表單(ModelForm)中則不會顯示這一列的情況)