Djangoのモデルにcreated_at,updated_atを実装する

Djangoのモデルにcreated_at,updated_atを実装する

Djangoのモデルによくある作成日(created_at),更新日(updated_at)を追加する方法です。 基本的にモデルに各項目を設定するだけで実装できます。 各項目の追加、更新も自動で行ってくれるので、脳死でとりあえず追加しておくのもありだと思います。

設定方法

models.pyのモデルに2行追加するだけです。

polls/models.py

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

Django REST Framework

Django REST Frameworkを使用する場合、Serializerに書き換え防止のためにread_only_fieldsを設定しておきましょう。

polls/serializers.py

class ModelSerializer(serializers.ModelSerializer):
  class Meta:
    model = model
    fields = '__all__'
    read_only_fields = ('created_at', 'updated_at')