当我使用多表继承时,Django 创建了两个表——一个用于基类,一个用于派生类,指向第一个。有没有办法在删除派生表条目的同时保留基表条目,并为另一个模型创建另一个条目?
简单来说:我有模型:A、B(派生自 A)、C(派生自 A)。我想将类型 B 的对象转换为类型 C。复制不是一个好的解决方案,因为 A 用作一组项目,因此项目使用外键指向它。
最佳答案
没有内置的方法可以做到这一点。如果因为 FK 指向它而需要保留基表中的条目,则必须编写一些管理器方法来使用原始 SQL 操作 B 和 C 表。
如果您使用的 RDBMS 不支持参照完整性,您可以只复制数据,删除 B 实例,然后创建 PK 手动设置为 B 的 PK 的 C 实例。
https://stackoverflow.com/questions/1398857/