2011-11-04 72 views

回答

89

默認情況下沒有這樣的事情,但添加一個超級簡單。只需使用auto_now_add參數在DateTimeField類:

created = models.DateTimeField(auto_now_add=True) 

您還可以使用auto_now一個「更新」字段。檢查他們的行爲in the doc

與這兩個領域的模型看起來就像這樣:

class MyModel(models.Model): 
    created_at = models.DateTimeField(auto_now_add=True) 
    updated_at = models.DateTimeField(auto_now=True) 
26

自動地聽起來並不喜歡的事的Django默認會做。它不會強制你需要時間戳。

我想建立一個抽象基類和繼承其所有車型,如果你不希望有關timestamp /字段名給忘了,等

class TimeStampedModel(models.Model): 
    created_on = models.DateTimeField(auto_now_add=True) 

    class Meta: 
     abstract = True 

它似乎並不像很多進口wherever.TimeStampedModel代替django.db.models.Model

class MyFutureModels(TimeStampedModel): 
    .... 
+1

Django中還有'model_utils',它已經包含'TimeStampedModel',但是如果你不需要這個包裏的其他東西,只需保持它沒有額外的重量。 – boldnik

+0

@boldnik我是一個簡單的粉絲。 –

3

您可以嘗試django-extensions

,如果你想使用時間戳抽象模型

from django_extensions.db.models import TimeStampedModel 

class A(TimeStampedModel): 
    ... 

它具有其他抽象模型。你也可以使用它。

相關問題