模型Django中的Id字段

mklgxw1f  于 2023-04-22  发布在  Go
关注(0)|答案(4)|浏览(120)

在Django模型中,我总是得到一个主列作为Id。有没有可能改变。例如,对于City表,我希望有一个主键列作为city_id

j2cgzkjk

j2cgzkjk1#

city_id = models.AutoField(primary_key=True)
to94eoyn

to94eoyn2#

答案是肯定的,
就像这样:

city_id = models.PositiveIntegerField(primary_key=True)

在这里,您将覆盖id
如果你想指定一个自定义主键,只需在其中一个字段上指定primary_key=True。如果Django看到你显式设置了Field.primary_key,它不会自动添加id列。
或者,您可以始终定义模型属性并使用它。示例

class City(models.Model)
    #attributes
    @property
    def city_id(self):
        return self.id

并将其作为city.city_id访问,而通常是city.id

33qvvth1

33qvvth13#

默认情况下,Django为每个模型提供以下字段:

id = models.AutoField(primary_key=True)

这是一个自动递增的主键。
所以你的情况是:

city_id = models.AutoField(primary_key=True)
yqyhoc1h

yqyhoc1h4#

你当然可以。

city_id = models.BigIntegerField(primary_key=True)

相关问题