我正在开发一个应用程序,我们必须在接受模型更改之前对其进行审查。
为此,当用户在应用程序前端编辑公司模型对象之一时,表单的初始数据将填充原始对象中的数据,然后存储到使用origin_company
字段标记的新对象中(这是一个外键对象的先前版本)。
所以基本上当有人编辑公司时,就会创建一个新的、不活跃的公司。
要应用更改,我想将所有数据从更改后的公司复制到原始公司。(我正在使用自定义 django-admin 操作来执行此操作。)最简单的方法可能是开始交易,删除原始公司并更改已更改公司的主键以匹配原始公司。但是通过这样做,更改后的公司不会被更新,而是被复制。并且相关的数据库条目 (FK) 也不会更新。
有没有一种简单的方法可以将所有数据(包括 FK 关系)从一个模型实例复制或移动到另一个模型实例?还是我解决这个问题的整个方式都搞砸了?
这是模型定义:
class Company(models.Model):
company_name = models.CharField(max_length=150)
...
origin_company = models.ForeignKey('self', related_name=u'CompanyEdits',
null=True, blank=True, default=None)