常用字段类型:

模型字段名 说明 MySQL对应字段名
AutoField 自增字段,如果没有指定将自动添加一个名为"id"的自增主键字段 int(11)
IntegerField 整数字段 int
BigIntegerField 类似于IntegerField,一个64位的整数 bigint
SmallIntegerField 类似于IntegerField,-32768到32767 smallint
PositiveIntegerField 类似于IntegerField,但必须为正数或0 int
PositiveSmallIntegerField 类似于IntegerField,0到32767 smallint
BinaryField 用于存储原始二进制数据的字段。它可以分配bytes、bytearray或memoryview longblob
BooleanField 布尔值字段 tinyint(1)
CharField 字符串字段,从小到大的字符串。对于大量文本,请使用TextField。 varchar
DecimalField 固定精度的十进制数字 decimal
EmailField 邮件字段 varchar
FloatField 邮件浮点数字段 double
GenericIPAddressField 字符串格式的IPv4或IPv6地址 char(39)
SlugField 仅包含字母,数字,下划线或连字符。它们通常在URL中使用。 varchar
TextField 大文本字段 longtext
URLField 一个CharField一个URL varchar
UUIDField 用于存储通用唯一标识符的字段。使用Python的 UUID类。 char(32)

选项:

选项名 说明
null 设置为True时,意味着“无数据”有两种可能:NULL和空字符串,当设置了blank=True时,null也需要设置为True
blank 设置为True时表示允许为空,为False时则表示不允许为空
max_length 当前字段的最大长度
db_column 用于该字段的数据库列的名称。如果未指定,则Django将使用该字段的名称。如果您的数据库列名称是SQL保留字,或者包含Python变量名称中不允许使用的字符(尤其是连字符),那可以。Django在幕后引用列名和表名。
db_index 如果为True,将为此字段创建数据库索引。
db_tablespace 如果此字段已建立索引,则用于该字段的索引的数据库表空间的名称。默认值是项目的 DEFAULT_INDEX_TABLESPACE设置(如果已设置)或 db_tablespace模型的设置(如果有)。如果后端不支持索引的表空间,则忽略此选项。
default 设置默认值,默认值需与当前字段同类型
primary_key 如果设置为True,则初始设置为该模型的主键。一个对象只允许使用一个主键。
unique 如果设置为True,这个字段必须在整个表中保持值唯一,且将会创建索引。
validators 为此字段运行的验证器列表。
verbose_name 字段的易读名称(注释)。

原创文章,转载请注明出处:http://124.221.219.47/article/126874144/