Django中DateField與DateTimeField的特殊參數auto_add_now和auto_now

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

劃重點:

  1. auto_add_now,auto_now與default是互斥的,也就是說,當你把它仨或者其中的倆放一塊兒就會報錯
  2. 當你將auto_add_now,auto_now設置爲True 會引起editable=False和blank=True(editable若爲False,在admin界面或其他的表單(ModelForm)中則不會顯示這一列的情況)


發佈了28 篇原創文章 · 獲贊 26 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章