如何安全地更改Django模型中主键字段的值?

时间:2012-07-18 13:05:49

标签: database django django-models django-orm

我有一个带有自定义指定主键的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的值。

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:3)

不知道你是否还在寻找这个,但也许这个片段会有所帮助:http://djangosnippets.org/snippets/2915/

这不是一个非常好的数据库设计,因为正是这类问题。通常最好使用django的隐式主键,并将my_primary_key创建为唯一字段。