2021-08-29 07:40:29
以下是Django模型中常用的字段类型清单,按功能分类整理:
基础字段类型AutoField自动递增的整型主键字段,通常无需手动声明(未指定主键时自动添加)。
BooleanField布尔值字段,在Admin后台显示为复选框。
CharField短字符串字段,需指定max_length参数。示例:name = models.CharField(max_length=50)
TextField长文本字段,Admin后台使用多行文本框。
IntegerField / PositiveIntegerField / SmallIntegerField / PositiveSmallIntegerField整数类型,支持正数、小范围整数等变体。
FloatField浮点数字段,需指定max_digits(总位数)和decimal_places(小数位数)。示例:price = models.FloatField(max_digits=10, decimal_places=2)
EmailField校验合法性的邮箱字段(继承自CharField)。
URLField存储URL,可设置verify_exists检查链接有效性(默认开启)。
IPAddressField存储IP地址(如192.168.1.1)。
FileField文件上传字段,需指定upload_to(存储路径)。要求:配置MEDIA_ROOT和MEDIA_URL。
ImageField继承自FileField,额外校验图片格式,可选height_field/width_field保存尺寸。
CommaSeparatedIntegerField逗号分隔的整数列表(如"1,2,3"),需指定max_length。
FilePathField限制选择指定目录下的文件,支持正则匹配(match)和递归子目录(recursive)。
SlugField用于URL的短标签(仅含字母、数字、下划线、连字符),默认长度50。
XMLField校验合法XML的文本字段(需提供schema_path)。
NullBooleanField允许NULL的布尔字段,Admin显示为“Unknown/Yes/No”选择框。
USStateField两字母美国州名缩写(如"CA")。
null / blank控制数据库NULL值和表单空值允许(null=True/blank=True)。
default设置默认值(如default=0)。
choices限制选项为二维元组(如choices=[(1, 'A'), (2, 'B')])。
unique / unique_for_date强制唯一性或按日期唯一(如unique_for_date='pub_date')。
db_index为字段创建数据库索引(db_index=True)。
help_text在Admin中显示帮助文本。
通过合理选择字段类型和参数,可以高效定义符合业务需求的数据库模型。