P05 Django-models的常用字段和常用配置

常用字段

在Django中,常用的字段类型用于在模型中定义数据模型的字段,每种字段类型对应数据库中的不同数据类型,并提供了特定的功能和选项。以下是一些Django中常用的字段类型:

CharField 用于存储字符串类型,有最大长度限制

IntegerField 用于存储整数类型

FloatField用于存储浮点数类型

BooleanField 用于存储布尔类型

DateField 用于存储日期类型

DateTimeField 用于存储日期和时间类型

ImageField 用于存储图片类型

FileField 用于存储文件类型

ForeignKey 外键 用于表示数据库表之间的关联关系

OneToOneField 一对一 用于表示数据库表之间的一对一关系

ManyToManyField 多对多 用于表示数据库表之间多对多的关联关系   ‍

字段选项

在Django中,字段选项用于为模型中的字段提供额外的配置。以下是一些常用的字段选项:

primary_key 字段是否为主键,默认为 False。

max_length 字段的最大长度限制,可以应用于多种不同的字段类型。

verbose_name 字段的友好名称,在管理界面或数据库中代替原始字段的名称来显示。

default 指定字段的默认值。

null 指定字段是否可以为空。

null=True 设置允许该字段为 NULL 值

blank 指定在表单中输入时是否可以为空白。

choices 用于指定字段的可选值枚举列表,在最上面定义

editable 默认为True,表示字段在表单中可以编辑

unique 字段是否唯一,默认为 False。

字段定义

class Status(TextChoices):
    QUALIFIED = 'qualified', '良品'  # 良品选项,值为'qualified',显示名称为'良品'
    UNQUALIFIED = 'unqualified', '不良品'  # 不良品选项,值为'unqualified',显示名称为'不良品'

class DeliveryMaterial(Model):
    status = models.CharField(
        max_length=32,
        choices=Status.choices,
        default=Status.QUALIFIED,
        verbose_name='状态'
    )

TextChoices 是 Django 3.0 引入的一个枚举类,用于在模型字段中创建可选择的、文本值的选项。

related_name 指定在多对多等关系中反向使用的名称。

on_delete 指定如果外键关联的对象被删除时应该采取什么操作。

由此在前面产品信息表的语句可以解释为:

category = ForeignKey('data.GoodsCategory', on_delete=SET_NULL, null=True,related_name='goods_set', verbose_name='产品分类')

该段定义了一个外键字段 category,它建立了当前Goods模型与名为 GoodsCategory 的模型之间的关联,一个GoodsCategory可以关联多个当前模型的实例,表示一个类别下可以有多个产品。当所关联的记录被删除时,该字段会自动设置为 NULL,它可以为空。related_name 设置了反向查询的名称,在 GoodsCategory 模型中,可以通过 goods_set 这个属性来访问所有关联的产品对象集合。   ‍

课后习题:

课后练习题

最后更新于