【问题标题】:Django - auto_now=True did not work for custom actionsDjango - auto_now=True 不适用于自定义操作
【发布时间】:2010-11-01 16:55:28
【问题描述】:

我的模型有以下字段。只要该模型发生变化,它就必须更新。

modified_at = models.DateTimeField(auto_now=True)

我编写了一个自定义操作来在管理界面中更改此模型的状态。

除了管理界面中提到的自定义操作之外,此特定字段适用于所有类型的更新。有什么想法吗?

【问题讨论】:

  • 向我们展示您的自定义操作。是自定义的 save() 吗?
  • 我的自定义如下。 def make_active(modeladmin, request, queryset): queryset.update(status='a') make_active.short_description = "Mark selected Users as Active"

标签: django django-models django-admin


【解决方案1】:

您可以在 django 的文档中看到 update() 实际上不调用 save()。因此,auto_now 不更新 DateField 是很正常的(在 save() 调用时更新)

http://docs.djangoproject.com/en/1.2/ref/models/querysets/#update-kwargs

【讨论】:

  • 还有其他选择吗?
  • 您可能可以使用 update(status='a', modified_at=datetime.now) 或类似的东西?
  • 您可以手动发送保存信号来触发任何使用该信号在保存时运行的东西。
猜你喜欢
  • 2012-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-05
  • 1970-01-01
  • 2019-05-26
相关资源
最近更新 更多