created_atとupdated_atのモデルを作りたい Django

Djangoにおいて、created_atupdated_atのフィールドを持つモデルを作成するには、次のような手順を踏みます。

python
from django.db import models from django.utils import timezone class MyModel(models.Model): created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) # 他のフィールドを追加する場合はここに記述します class Meta: verbose_name = "My Model" verbose_name_plural = "My Models" def save(self, *args, **kwargs): '''モデルを保存する際にupdated_atを更新する''' self.updated_at = timezone.now() super().save(*args, **kwargs) def __str__(self): return str(self.pk) # 任意のフィールドで表示したい内容を指定します

上記のコードでは、MyModelというモデルを定義しています。このモデルには、created_atupdated_atという2つのフィールドが含まれています。created_atフィールドはモデルが作成された日時を保存し、updated_atフィールドはモデルが更新された日時を保存します。これらのフィールドは、自動的に現在の日時で初期化されます。

save()メソッドをオーバーライドして、モデルが保存されるたびにupdated_atフィールドが更新されるようにしています。これにより、モデルのインスタンスが更新されるたびにupdated_atフィールドが更新されます。

Metaクラスには、モデルの表示名を指定するための設定が含まれています。verbose_nameverbose_name_pluralは、管理サイトで表示されるモデルの名前を設定するために使用されます。

必要に応じて、他のフィールドをMyModelに追加し、モデルの要件に合わせてカスタマイズできます。

未分類

Posted by ぼっち