Django 字段类型汇总

Django 字段类型

字段类型

含义

数据库表示

AutoField

int 自增列,必须填入参数

integer AUTO_INCREMENT

BigAutoField

bigint 自增列,必须填入参数

bigint AUTO_INCREMENT

SmallIntegerField

小整数 -32768 ~ 32767

smallint

PositiveSmallIntegerField

正小整数 0 ~ 32767

smallint UNSIGNED

IntegerField

整数列(有符号的)

-2147483648 ~ 2147483647

integer

 

BigIntegerField

长整型(有符号的)

-9223372036854775808 ~

9223372036854775807

 

bigint

PositiveIntegerField

正整数 0 ~ 2147483647

integer UNSIGNED

BooleanField

布尔值类型

bool

NullBooleanField

可以为空的布尔值

bool

 

CharField

字符类型,必须提供 max_length 参数, max_length 表示字符长度

 

varchar

TextField

文本类型

longtext

EmailField

字符串类型,Django Admin 以及 ModelForm 中提供验证机制

 

 

IPAddressField

字符串类型,Django Admin 以及 ModelForm 中提供验证 IPV4 机制

 

 

GenericIPAddressField

字符串类型,Django Admin 以及 ModelForm 中提供验证 Ipv4 和 Ipv6

 

URLField

字符串类型,Django Admin 以

及 ModelForm 中提供验证 URL

 

 

 

 

 

 

SlugField

字符串类型,Django Admin 以及 ModelForm 中提供验证支持字母、数字、下划线、连接符(减号

 

 

CommaSeparatedIntegerFiel d 

字符串类型,格式必须为逗号分割的数字

 

 

UUIDField

字符串类型,Django Admin 以及 ModelForm 中提供对 UUID 格式的验证

 

 

FilePathField

字符串,Django Admin 以及

ModelForm 中提供读取文件夹下文件的功能

 

 

 

 

 

 

FileField

字符串,路径保存在数据库,文件上传到指定目录

参数:

upload_to = "" 上传文件

的保存路径

torage = None 存储组件, 默 认        django.core.files.storage.F ileSystemStorage

 

 

 

 

 

 

 

 

 

ImageField

 

字符串,路径保存在数据库,文件上传到指定目录

参数:

upload_to = "" 上传文件的保存路径

storage = None 存储组件,默认           django.core.files.storage.F ileSystemStorage

width_field=None,上传图片的高度保存的数据库字段名(字符串)

height_field=None 上传图片的宽度保存的数据库字段名(字符串)

 

 

 

 

 

 

 

 

 

 

 

 

 

DateTimeField

日期+时间格式 YYYY-MM-DD

 

 

HH:MM[:ss[.uuuuuu]][TZ]

 

DateField

日期格式 YYYY-MM-DD

 

TimeField

时间格式HH:MM[:ss[.uuuuuu]]

 

 

DurationField

长整数,时间间隔,数据库中按照 bigint 存储,ORM 中获取的值为 datetime.timedelta 类型

 

FloatField

浮点型

 

 

 

DecimalField

10 进制小数

- 参数:

max_digits,小数总长度

decimal_places,小数位长度

 

BinaryField

二进制类型

 

字段参数含义:

default 数据库中字段的默认值

primary_key 数据库中字段是否为主键

db_index 数据库中字段是否可以建立索引

unique 数据库中字段是否可以建立唯一索引

unique_for_date 数据库中字段【日期】部分是否可以建立唯一索引

unique_for_month 数据库中字段【月】部分是否可以建立唯一索引

unique_for_year 数据库中字段【年】部分是否可以建立唯一索引

 

verbose_name   Admin 中显示的字段名称

blank   Admin 中是否允许用户输入为空

editable   Admin 中是否可以编辑

help_text   Admin 中该字段的提示信息

choices   Admin 中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作

                如:gf = models.IntegerField(choices=[(0, '何穗'),(1, '大表姐'),],default=1)

error_messages    自定义错误信息(字典类型),从而定制想要显示的错误信息; 字典健:null, blank, invalid, invalid_choice, unique, and unique_for_date

               如:{'null': "不能为空.", 'invalid': '格式错误'}

validators     自定义错误验证(列表类型),从而定制想要的验证规则from django.core.validators import RegexValidator from django.core.validators import  EmailValidator,URLValidator,DecimalValidator,  MaxLengthValidator,MinLengthValidator,MaxValueValidator,MinValueValidator

   如: test = models.CharField(
            max_length=32,
            error_messages={
                'c1': '优先错信息 1',
                'c2': '优先错信息 2',
                'c3': '优先错信息 3',
             },
             validators=[
                 RegexValidator(regex='root_\d+', message='错误了', code='c1'),
                 RegexValidator(regex='root_112233\d+',message='又错误了', code='c2'),
                 EmailValidator(message='又错误了',code='c3'), ]
           )      

unique_for_date #只对时间做索引

unique_for_month #只对月分做索引unique_for_year

auto_now #更新时,自动更新为当前时间auto_now_add #创建时,自动生成

你可能感兴趣的:(python,django)