【发布时间】:2012-07-17 12:46:09
【问题描述】:
我有一个带有自定义指定主键的 Django 模型:
class ModelA(models.Model):
my_primary_key = models.CharField(primary_key=True, ...)
...
我还有其他模型对此模型有 ForeignKey 引用:
class ModelB(models.Model):
ref_to_A = models.ForeignKey('ModelA', ...)
...
class ModelC(models.Model):
ref_to_A = models.ForeignKey('ModelA', ...)
...
...
我有一些 ModelA 实例,需要为这些实例更改 my_primary_key 的值。
最好的方法是什么?
【问题讨论】:
-
假设您现在想通过更改主键(并且可能是其他属性)来引用新记录。所以与其改变主键,不如改变其他属性?或者您复制一条记录并更新新记录的外键实例。
-
这就是我们使用代理键而不是自然键的原因。
标签: database django django-models django-orm