我总是在Django模型中获得一个主列作为Id。有没有可能改变。对于前者对于City表,我希望将主键列设为city_id
。
答案 0 :(得分:18)
city_id = models.AutoField(primary_key=True)
答案 1 :(得分:11)
答案是肯定的,
这样的事情:
city_id = models.PositiveIntegerField(primary_key=True)
在这里,您将覆盖id
。 Documentation here
如果您想指定自定义主键,只需在其中一个字段中指定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
答案 2 :(得分:2)
当然,你可以。
city_id = models.BigIntegerField(primary_key=True)
答案 3 :(得分:0)
默认情况下,Django为每个模型提供以下字段:
id = models.AutoField(primary_key=True)
这是一个自动递增的主键。
因此,您的情况是:
city_id = models.AutoField(primary_key=True)