Django Field types
- AutoField
- BigAutoField
- BigIntegerField
- BinaryField
- BooleanField
- CharField
- DateField
- DateTimeField
- DecimalField
- DurationField
- EmailField
- FileField
- FloatField
- ImageField
- IntegerField
- GenericIPAddressField
- NullBooleanField
- PositiveIntegerField
- PositiveSmallIntegerField
- SlugField
- SmallIntegerField
- TextField
- TimeField
- URLField
- UUIDField
AutoField
- 自动设置主键时用到的设置自动递增的id,如果我们没有设置主键,Django 会给每一个模型添加下面的字段:
#这是一个自增的主键 id = models.AutoField(primary_key=True)
BigAutoField
- 类似于AutoField的1 到 9223372036854775807大整数字段
BigIntegerField
- -9223372036854775808 到 9223372036854775807的64位大整数类型
BinaryField
- 用于存储原生的二进制数据,例如bytes, bytearray, or memoryview.
BooleanField
true/false
字段
CharField
- 字符类字段,超大文本使用TextField。具有max_length属性
CharField.max_length
- 字段的最大长度
DateField
- 日期字段,python中表现为datetime.date的实例,属性如下:
DateField.auto_now
- 每次字段保存的时候自动设置字段值为当前时间。最适合 “last-modified” 字段时间戳.
DateField.auto_now_add
- 记录首次添加时字段设置为当前时间,最适合creation字段。
DateTimeField
-日期时间字段,python中表现为datetime.datetime 实例,属性同DateField。
DecimalField
- 固定的十进制数字段,python中表现为十进制实例。参数如下:
DecimalField.max_digits
- 数字中允许的最大位数。请注意,这个数字必须大于或等于decimal_places。
DecimalField.decimal_places
- 小数位数
models.DecimalField(..., max_digits=5, decimal_places=2)
models.DecimalField(..., max_digits=19, decimal_places=10)
DurationField
- 用于存储时间段的字段,python中表现为timedelta.
EmailField
- 用EmailValidator检验邮箱地址的CharField字段。
FileField
- 文件字段,详见传送门
FloatField
- 浮点数字段,Python中表现为float 实例。
ImageField
- Image字段,详见传送门
IntegerField
- -2147483648 to 2147483647的整数字段
GenericIPAddressField
- IP字段,详见传送门
NullBooleanField
- 支持null=True属性的BooleanField
PositiveIntegerField
- 0 to 2147483647的正整数字段
PositiveSmallIntegerField
- 0 to 32767的小正整数字段
SlugField
- 详见传送门
SmallIntegerField
- -32768 to 32767小整数字段
TextField
- 大文本字段
TimeField
- 时间字段,python中表现datetime.time,支持的属性同DateField.
URLField
- URLValidator校验的CharField
UUIDField
- 存储唯一标示符的字段,python中表现为UUID 。唯一标示符一般来讲使用AutoField for primary_key更好. 数据库不会为我们生成UUID,我们可以采用以下算法:
import uuid from django.db import models class MyUUIDModel(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) # other fields