【问题标题】:How to delete objects and their historical records at once in django?如何在 django 中一次删除对象及其历史记录?
【发布时间】:2020-12-14 22:43:11
【问题描述】:

我有一个名为 PTORequest 的对象,它有一个历史字段用于存储它的历史记录。

history = HistoricalRecords()

我在创建自动级联历史记录的历史列时没有提到cascade_delete_history=True

如何在不进行模型更改和迁移的情况下从 PTORequest 表中删除所有对象及其历史记录?

我能想到的一件事是这样的:

for i in PTORequest.objects.all():
    print i.history.all().delete()
    print i.delete()

还有其他有效的方法吗?

我正在使用 Django 1.11

【问题讨论】:

    标签: python django django-models django-rest-framework django-views


    【解决方案1】:

    您可以通过Querying history on model class获取所有对象历史记录

    所以是这样的:

    PTORequest.history.all().delete()
    

    【讨论】:

      猜你喜欢
      • 2020-12-28
      • 1970-01-01
      • 2015-12-22
      • 1970-01-01
      • 2014-11-24
      • 1970-01-01
      • 2014-08-28
      • 2012-02-12
      • 1970-01-01
      相关资源
      最近更新 更多