我正在使用formset来更新一大组模型实例的单个字段。我想显示一个时间戳,显示自该实例的字段上次更新以来的时间。由于此字段通常每周更新一次,因此我宁愿使用DateField而不是DateTimeField作为时间戳。尽管如此,DateField似乎没有更新。但是,当我将模型字段更改为DateTimeField时,它按预期工作。这是我的代码。
#Template
<div class = 'last-updated'> {{ form.instance.last_updated|timesince }} </div>
# Models.py
last_updated = models.DateField(auto_now=True)
# Models.py - This version works
last_updated = models.DateTimeField(auto_now=True)
我发现帖子说要覆盖模型的save()方法,但这似乎是最后的手段,我发现这些帖子的日期是2011年及更早,所以可能已过时了。
由于文档将DateField和DateTimeField列为或多或少相同,使用相同的可选参数,我想知道为什么它们似乎不会以相同的方式更新auto_now。
修改
当我将字段类型更改为DateField时,显示的值显示为自创建以来的时间,而不是自更新以来的时间,并且它更新了formset中每个项目的值。为了澄清,此模型没有自定义保存方法。