2012-06-11 8 views
5

過去にcakephpを使っていたのは、私が気に入っていたのは、「作成」と「更新」のタイムスタンプ機能があって、djangoはdjangoにcakephpのような自動タイムスタンプの作成/更新フィールドを持っていますか?

その後、いつでも更新が行われた場合、「更新」フィールドは現在の時刻に設定されていました。

これもdjangoにはありますか?もしそうなら、私はそれを拾うためにフィールドをどのように名付けますか?

+1

[Django doモデルにはデフォルトのタイムスタンプフィールドがありますか?](http://stackoverflow.com/questions/8016412/in-django-do-models-have-a-default-timestamp-field) –

答えて

14

確かにあります! the doc

+1

[ソース](https://docs.djangoproject.com/ja/dev/_modules/django/db/models/fields/#DateTimeField)から、それらは相互排他的であるように見えます。しかし、その違いを説明するのに役立つことができますか? 'auto_now'と' auto_now_add'の違いはどういうものなのでしょうか。 – alvas

+0

[こちら](https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.DateField.auto_now)より詳細を確認してください。 'auto_now'は各編集で生成され、' auto_now_add'は作成時にのみ生成されます。 – bizi

8

チェックauto_nowauto_now_addそれは、内蔵のすべてのテーブルであなたのモデルに追加されていません。モデルにフィールドとして追加する必要があります。

class Message(models.Model): 

    created_at = models.DateTimeField(auto_now_add=True) 
    updated_at = models.DateTimeField(auto_now=True) 

この場合、メッセージのテーブルの名前。