整理了模型中几种字段类型及字段选项,帮助开发使用
一、字段类型
1.AutoField
- 一个根据实际ID自动增长的IntegerField,通常不指定,如果不指定,将会被自动创建
- 一个主键字段将自动添加到模型中
2.CharField
- 字符串,默认的表单样式是 TextInput
3.TextField
- 大文本字段,一般超过4000使用,默认的表单控件是 Textarea
4.IntegerField
- 整形
5.DecimalField(max_digits=None,decimal_places=None)
- 使用python的Decimal实例 表示十进制浮点数
- 参数说明:
- DecimalField.max_digits
- 位数总数
- DecimalField.decimal_places
- 小数点后的数字位数
- DecimalField.max_digits
6.FloatField
- 用python的float实例来表示的浮点数
7.BooleanField
- true/false 字段,此字段的默认表单控制是CheckboxInput
8.NullBoolField
- 支持null、true、false三种值
9.DateField([auto_now=False, auto_now_add=False])
- 使用Python的Datetime.date实例表示的日期
- 参数说明
- DateField.auto_now
- 若将改参数设置成True,每次保存对象时,自动设置该字段当前时间,用于“最后一次修改”,不用手动去改
- DateField.auto_now_add
- 若将改参数设置成True,当对象第一次被创建时自动设置当前时间,用于创建时间戳,它总是使用当前日期,默认为false,第一次创建对象时的时间赋值给当前属性
- DateField.auto_now
- 说明
- 该字段默认对应的表单控件是一个TestInput,在管理员站点添加了一个JavaScript写的日历控件,和一个“Today”的快捷按钮,包含了一个额外的invalid_date错误消息键
- 注意
- auto_now_add,auto_now,and default 这些设置是相互排斥的,他们之间的任何组合将会发生错误的结果
10.TimeField
- 使用Python的datetime.time实例表示的时间,参数同DateField类似
11.DateTimeField
- 使用Python的datetime,datetime实例表示的日期和时间,参数同DateField类似
12.FileField
- 一个上传文件的字段
13.ImageField
- 继承了FileField的所有属性和方法,但对上传的对象进行校验,确保它是有效的image
二、字段选项
- 概述
- 通过字段选项,可以实现对字段约束
- 在字段对象时通过关键字参数自定
- null
- 如果为True,Django将空值以NULL 存储到数据库中,默认值为False
- blank
- 如果为True,则允许该字段为空白,默认为False
- 注意
- null是数据库范畴的概念,blank是表单验证范畴的概念
- db_column
- 字段的名称,如果未指定,则使用属性的名称
- db_index
- 若值为True,则在表中会为此字段创建索引
- default
- 默认值
- primary_key
- 若为True,则该字段会成为模型的主键字段
- unique
- 如果为True,这个字段在表中必须唯一
版权声明:本文为SjwFdb_1__1原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。