学习笔记,仅供参考,有错必纠
参考自:django 官方文档;Django 1.11.6 中文;django models 之字段详解
models字段
models的字段类型
字段类型
意义
阐述
models.AutoField
自增列 int(11)
如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。
models.CharField
字符串字段
必须使用max_length参数,django会根据这个参数在数据库层和校验层限制该字段所允许的最大字符数。只可用于较短的字符串,如要保存大量文本, 可使用 TextField。
models.BooleanField
布尔类型tinyint(1)
该字段不能为空,也就是说他的Blank=True
models.ComaSeparatedIntegerField
用逗号分割的数字
继承CharField,所以必须有max_lenght 参数
models.DateField
日期类型date
如果参数auto_now = True,则每次更新都会更新这个时间;如果设置auto_now_add = True,则只是第一次创建添加,之后的更新不再改变。
models.DateTimeField
日期类型 datetime
和DateField的参数相同
models.DecimalField
十进制小数类型decimal
必须指定整数位max_digits和小数位decimal_places
models.EmailField
正则表达式邮箱varchar
对字符串进行正则表达式匹配,匹配一个带有检查Email合法性的 CharField,不接受maxlength 参数。
models.FloatField
浮点类型 double
浮点型字段
models.IntegerField
整形
用于保存一个整数
models.BigIntegerField
长整形
-
models.IPAddressField
ip4正则表达式
一个字符串形式的 IP 地址, 如 202.1241.30
models.GenericIPAddressField
ip4和ip6为可选项
参数protocol可以为:both、ipv4、ipv6
models.NullBooleanField
允许为空的布尔类型
类似于BooleanField, 不过允许 NULL 作为其中一个选项。 推荐使用这个字段而不要用 BooleanField 加 null=True 选项。
models.PositiveIntegerField
正Integer
类似于IntegerField, 但取值范围为非负整数
models.PositiveSmallIntegerField
正smallInteger
正小整型字段
models.SmallIntegerField
数字
类似于 IntegerField, 不过只允许某个取值范围内的整数。(依赖数据库)
models.TextField
字符串longtext
一个容量很大的文本字段
models.TimeField
时间 HH:MM[:ss[.uuuuuu]]
时间字段
models.URLField
地址正则表达式
用于保存URL,若参数verify_exists=True (默认), 会预先检查URL是否存在(即URL是否被有效装入且没有返回404响应).
models.BinaryField
二进制
models.ImageField
图片
该字段要求 Python Imaging 库。
models.FilePathField
选择指定目录按限制规则选择文件
models.PhoneNumberField
一个带有合法美国风格电话号码校验的 CharField
格式:XXX-XXX-XXXX
models.FileField
文件上传字段
models.USStateField
美国州名缩写
由两个字母组成
models.XMLField
XML字符字段
-
字段选项
以下参数对所有字段类型均有效,且是可选的。
参数
意义
null
如果设置为 True, 当该字段为空时,Django 会将数据库中该字段设置为 NULL,默认为 False。
blank
如果设置为 True ,该字段允许为空。默认为 False 。
choices
一个可迭代的(例如,一个列表或元组),它本身就包含两个项目的可迭代项(例如[(A, B), (A, B) ...])作为该字段的选项。
第一个值是实际存储的值,第二个用来方便进行选择,如SEX_CHOICES= ((‘F’,'Female’),(‘M’,'Male’),)
default
字段的默认值。 这可以是一个值或一个可调用的对象。 如果可调用,则每次创建新对象时都会调用它。
editable
如果False,该字段将不会显示在管理员或任何其他ModelForm中。
help_text
admin模式下的帮助文档
primary_key
如果True,则该字段是模型的主键;如果没有设置,django创建表时会自动加上
error_messages
使用error_messages参数可以覆盖该字段将引发的默认消息。 传入一个字典,其中包含与要覆盖的错误消息相匹配的密钥。
unique
如果True,则该字段在整个表格中必须是唯一的。
unique_for_date
要求此字段对于日期字段的值是唯一的。
unique_for_month
与unique_for_date类似,但要求该字段相对于月份而言是唯一的。
db_index
如果设置为True, 表示为该列增加索引
db_column
指定列的名称,如果不指定的话则采用变量名作为列名