我有两个模型,A
和HistoryA
class A(models.Model):
title = ....
slug = ....
done = ....
date_done = ....
class HistoryA(models.Model):
parent = ForeignKey(A)
title = ....
slug = ....
done = ....
date_done = ....
用户创建完A
实例后,请尝试对其进行编辑;创建了HistoryA
的新实例,并保存了所有旧数据。但是,如果该用户决定放弃更改,则HistoryA
中的旧数据必须移回A
如何将所有值从HistoryA
复制到A
,而不必一一键入所有字段,例如:
# Just an example
A_instance.attributes = HistotyA_instance.attributes
A_instance.save()
基本上,这只是为模型创建历史记录的一种方法。
答案 0 :(得分:2)
您可以使用__dict__
方法访问模型的数据(或任何对象数据)。为了存储模型的历史记录,而不是按照您提到的方式进行存储,最好使用django-simple-history之类的第三方库。例如,您可以像这样使用它:
from simple_history.models import HistoricalRecords
class A(models.Model):
title = ....
slug = ....
done = ....
date_done = ....
history = HistoricalRecords()
您也可以查看many other libraries。