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