在Django模型中重命名默认的id列

4

我有一个使用Django编写的现有应用程序,我正在利用模型、迁移orm等。

每个模型都有一个列id,我想知道是否可以将此列重命名为其他名称,比如person_id

我看到一些示例创建了新的主键列,但这不是我想要的。我想要重命名现有的id列名。


不,我不是在谈论我自己创建的字段,我在谈论自动生成的ID。我正在使用最新的Django(1.9),当您通过manage.py创建模型时,它甚至不会创建像您提到的<model_name>_id这样的列名,而只会创建id - 没有模型名称的前缀。 - jonprasetyo
如果我理解你的意思正确,你是说当你创建一个简单的模型像这样 class Person(model.Model): name = models.CharField(max_length100) 你的意思是在 person 表中将有两列看起来像这样 -> person_idname - jonprasetyo
在我的表格 Person 中,列名是这些 -> idname - jonprasetyo
我觉得我对你谈论的内容感到困惑了(上面主要是关于外键,我可能会删除注释)。但即便如此,你试图解决的确切问题是什么? - Sayse
1个回答

8
您说过这不是您想要的,但是答案就是创建您自己的主键。

根据文档,如果您想指定自定义主键,只需在其中一个字段上指定primary_key=True即可。如果Django看到您已经显式设置了Field.primary_key,它将不会添加自动id列。

因为它不会添加自动id列,所以您实际上重命名了它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接