Django(part21)--models字段

学习笔记,仅供参考,有错必纠

参考自: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 指定列的名称,如果不指定的话则采用变量名作为列名


猜你喜欢

转载自blog.csdn.net/m0_37422217/article/details/106864689
今日推荐