auto_now_add=True
とauto_now=True
を行いますeditable=False
を前提としています。したがって、管理者またはその他のModelForm
でこのフィールドを変更する必要がある場合は、auto_now_*=True
の設定を使用しないでください。
これらのフィールドの自動更新は、Djangoレベルで処理されます。
あなたはauto_now_*=True
フィールドとモデルのインスタンスを更新した場合、Djangoはフィールドを自動的に更新します、例えば、
class Article(models.Model):
active = models.BooleanField()
updated = models.DateTimeField(auto_now=True)
article = Article.object.get(pk=10)
article.active = True
article.save()
# ASSERT: article.updated has been automatically updated with the current date and time
あなたはジャンゴでこの自動動作をオーバーライドする場合は、あなたがして行うことができます)(queryset.update介してインスタンスを更新する、例えば、
Article.object.filter(pk=10).update(active=True)
# ASSERT: Article.object.get(pk=10).updated is unchanged
import datetime
Article.object.filter(pk=10).update(updated=datetime.datetime(year=2014, month=3, day=21))
# ASSERT: article.updated == March 21, 2014
自動更新はDjangoのレベルで 'DateTimeField'の' pre_save'方法で処理されます。 – okm
すべて可能ですが、それらのフィールドがどのように振る舞いたいかを教えてください。 '' post_date''フィールドに '' default = datetime.datetime.now''を使い、** Form **に '' post_updated''フィールドの初期値を微調整する方が良いでしょう。 – seler