我对Django数据库模型pk感到好奇。
这是否有任何区别
class Category(models.Model):
category_id = models.AutoField(primary_key=True)
category_name = models.CharField(max_length=50)
之间的这个?
class Category(models.Model):
category_name = models.CharField(max_length=50)
相同的内容AutoField with primary_key
和default pk
?
答案 0 :(得分:11)
是的,区别在于,主键数据库中的列名是category_id
,第二种情况是id
。
您可以使第二个示例模拟第一个示例的方法是:
class Category(models.Model):
category_name = models.CharField(max_length=50)
@property
def category_id(self):
return self.id
AutoField
IntegerField,根据可用ID自动递增。您通常不需要直接使用它;如果您没有另外指定
,主键字段将自动添加到您的模型中