字符串字段
必选参数,用于定义字段长度
整数字段,记录值的范围从-2147483648到2147483647
就像IntegerField,但其取值范围为-32768到32767
就像IntegerField,但其取值范围为-9223372036854775808到9223372036854775807
一个true/false字段,例如is_superuser
之类的字段,判断是否是超级管理员的就非常适合用BooleanField
日期,在 Python 中用一个 datetime.date 实例表示
每次保存时,都将字段值设置为当前时间,通常用于保存数据的更新日期
只有在调用Model.save()
时该字段才会自动更新。当以其他方式对其他字段进行更新时,如QuerySet.update()
该字段不会被更新
当第一次创建对象时,自动将该字段设置为现在,通常用于保存数据的创建日期
日期和时间,在 Python 中用一个 datetime.datetime 实例表示。与 DateField 一样,使用相同的额外参数
一个大的文本字段,最大可以存储4G的数据
一个时间字段,在 Python 中用 datetime.time 实例表示。接受与 DateField 相同的自动填充选项
一个URL存储字段,像所有的CharField子类一样,URLField接受可选的max_length
参数。如果你没有指定max_length
参数,默认为200
一个用于存储通用唯一标识符的字段。使用Python的UUID类
import uuid
from django.db import models
class MyUUIDModel(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
一个CharField类型的字段,仅在数据校验时会检验存储的数据是否符合电子邮件格式
IPv4或IPv6地址,仅在数据校验是会校验存储的数据是否符合IP地址格式
一个用于存储JSON编码数据的字段,需要后端数据库支持JSON存储
一个固定精度的十进制数,在 Python 中用一个 Decimal 实例来表示
数字中允许的最大位数。请注意,这个数字必须大于或等于 decimal_places
与数字一起存储的小数位数
一个float实例表示的浮点数
FloatField类有时会与DecimaField类混淆,虽然它们都表示实数,但他们表示的方式不同。FloatField内部使用Python的float类型,而DecimalField则使用Python的Decimal类型
一个用户存储时间段的字段,在Python中用timedelta建模,不常用
一个用户存储slug的字段,Slug是一个简单的标签,只包含字母、数字、下划线或连接符,一般用在URL中
可以指定max_length
,如果没有指定,则默认长度为50
如果为True,该字段除了接受ASCII字母外,还接受Unicode字母,默认为False
一个文件上传字段
继承FileField的所有属性和方法,但也验证上传的对象是有效的图像
用户存储文件路径,本质上还是一个CharField,但其选择仅限于文件系统中某个目录下的文件名
一个IntegerField,根据可用ID自动递增,默认主键ID使用AutoField类型,范围从
就像AutoField,但其取值范围为1到32767
就像AutoField,但其取值范围从1到9223372036854775807
就像IntegerField一样,但必须是正值或零,记录值的范围从0到2147483647
就像PositiveIntegerField一样,但记录值的范围值从0到9223372036854775807
就像PositiveIntegerField一样,但记录值的范围是从0到32767
一个用于存储原始二进制数据的字段,很少用,二进制数据也不建议存储在数据库中