Django在admin模塊中顯示auto_now_add=True或auto_now=True的時間類型列

轉載自: http://www.tuicool.com/articles/ZryE7fui

 

在Django若是model中的列定義了auto_now_add或auto_now屬性,那麼這種列不會在admin的頁面中顯示,好比:spa

class Blog(models.Model):
    ...
    create_time = models.DateTimeField(auto_now_add=True)
    update_time = models.DateTimeField(auto_now=True)

其中的create_time和update_time均不會顯示在admin頁面中。code

 

查看Django的源代碼blog

...
    def __init__(self, verbose_name=None, name=None, auto_now=False,
                 auto_now_add=False, **kwargs):
        self.auto_now, self.auto_now_add = auto_now, auto_now_add
        if auto_now or auto_now_add:
            kwargs['editable'] = False
            kwargs['blank'] = True
        super(DateField, self).__init__(verbose_name, name, **kwargs)

從代碼能夠看出,若是使用了auto_now_add或者auto_now屬性,那麼這一列將會把editable屬性設置爲False。get

全部若是真的想要強制顯示這樣的列,那麼能夠在列的定義語句後增長設置editable屬性爲True,好比:it

class Blog(models.Model):
    ...
    create_time = models.DateTimeField(auto_now_add=True)
    create_time.editable = True
    update_time = models.DateTimeField(auto_now=True)
    update_time.editable = True
相關文章
相關標籤/搜索