📅  最后修改于: 2023-12-03 15:10:39.106000             🧑  作者: Mango
在Django中,当我们定义一个模型类时,需要为其指定一个主键(primary key
),用于唯一标识模型类中的记录。如果我们没有明确指定主键类型,那么Django就会自动创建一个主键,并默认类型为django.db.models.AutoField
。
这种自动创建的主键类型在大多数情况下都能够满足我们的需求,它会自动创建一个整型主键,并在每次新增一个记录时自动递增。我们可以使用它来表示模型类中的唯一标识,或者在一些不需要特殊处理的场景下使用它。
例如,下面是一个示例模型类,它使用自动创建的主键:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
在这个模型类中,我们没有明确指定主键类型,因此Django会自动创建一个id
字段,类型为django.db.models.AutoField
。我们可以在数据库中查看这个模型类对应的表结构:
CREATE TABLE "app_name_book" (
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
"title" varchar(100) NOT NULL,
"author" varchar(50) NOT NULL
);
可以看到,Django自动创建了一个id
字段作为主键,并且指定了PRIMARY KEY AUTOINCREMENT
属性,表示这个字段会自动递增。
总之,当我们定义一个模型类时,在很多情况下都可以使用Django自动创建的主键类型。如果需要特殊类型的主键,可以使用primary_key
参数来指定。