【问题标题】:How to use the data about objects modifications in Django?如何在 Django 中使用有关对象修改的数据?
【发布时间】:2021-04-28 21:56:22
【问题描述】:

Django 存储了每个对象的修改历史,我们可以通过 Django admin 访问它:

它包含有关创建/修改对象的时间、执行操作的用户和操作的时间戳的数据:

通过查看数据库,我可以猜测这些数据存储在名为django_admin_log 的默认表中:

我想知道我们是否可以通过模型实例以任何方式使用这些数据?我习惯于通过Abstract Base Class 在每个模型上手动添加我的时间戳,但我想知道它是否有用?

或者这个表只记录在 Django 管理面板中发生的修改,这将使得当模型实例在其外部更新时仍然需要自定义时间戳。

【问题讨论】:

标签: python django django-models django-admin


【解决方案1】:

历史仅与在管理视图中完成的操作有关。要添加元数据,您还可以使用 model_utils,它还提供了一些其他方便的功能:https://django-model-utils.readthedocs.io/en/latest/

让我们假设每个动作都存储在历史表中。这表明您始终在数据库中进行连接以获取每行还创建和更新信息的视图。这是相当多的开销。因此,保持简单并为每个模型添加时间戳:)

【讨论】:

  • Django-model-utils 看起来很棒!当我正在研究一个只能通过 django 管理员修改数据的项目时,有什么方法可以轻松使用 django_admin_log 表中的数据?
猜你喜欢
  • 1970-01-01
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 2021-04-23
  • 2022-10-06
  • 1970-01-01
  • 2023-03-05
  • 2016-10-15
相关资源
最近更新 更多