Django字段类型

utoField
一个IntgerField,添加记录时它会自动增长,通常不需要指定这个字段,你如果不指定主键的话,系统会自动添加一个主键ID到你的model.

BooleanField
A true/false field.admin用checkbox来表示此类字段.

CharField
字符串字段,用于较短的字符串.
如果保存较大文本,使用TextField.
admin页面用一个文本框来表示此类字段的输入.
此类型必须有一个参数max_length,用于从数据库层和Django校验层限制该字段所允许的最大字符数.

CommaSeparatedIntegerField
用于存放逗号分隔的整数值,类似CharField,必须有max_length参数

DateField
一个日期字段,共有参数:
auto_now:当对象被保存时,自动将该字段的值设置为当前时间.通常用于last-modifed时间戳.
auto_now_add:当对象首次被录入时,自动将该字段设置为当前时间.
admin页用一个文本框表示该字段数据,并且有一个日期选择框.

DateTimeField
一个日期时间字段,类似DateField支持同样的附加选项.

EmailField
一个带有检查Email合法性的CharField,不接受max_length参数.

FileField
一个文件上传字段.
要求一个必有参数:upload_to(),一个用于保存上传文件的本地文件系统路径,这个路径必须拿strftine_imformation,该模式将被被上传的文件的文件名以时间戳形式命名.

FieldPathField
可选项目为某个特定目录下的文件名,支持三个特殊的参数,其中第一个是必须提供的.
path:必须,一个目录的绝对文件系统路径.FilePathField据此得到可选项目。”/home/images”.
match:可选,一个正则表达式,作为一个字符串,FilePathField将使用它过滤文件名,这个表达式只应用到base filename而不是路径全名.
recursive:可选则,布尔值,默认False,包括path下面的全部子目录。

FloatField
max_digits:总位数,不包括小数点和符号
decimal_places:小数位数
例如:保存最大为999(小数位数保存2位),你要这样定义字段:
models.FloatField(max_digits=5,decimal_places=2)

ImageField
类似FileField,不过要校验上传对象是否是一个合法图片,他有两个可选参数height_field、with_field,如果这2个参数,图片将按照提供的高度和宽度规格保存。同样也有upload_to参数设置上传路径.

IntegerField
保存整数

IPAddressField
一个IP地址形式的字符串,并且进行IP字符验证

NullBooleanField
类似BooleanField,不过允许NULL作为其中一个选项,推荐使用这个字段替代BooleanField.
admin页面用一个列表{‘Unknown’,’Yes’,’No’}来选择数据.

PhoneNumberField
一个带有合法美国电话号码校验的CharField

SmallIntegerField
类似IntegerField,不过只允许某个取值范围内的整数.

TextField
一个很大容量的文本字段
admin页面用一个textarea多行文本表示该字段的输入.

TiemField

URLField
一个用于保存URL并且进行数据校验的CharField,不需要max_length

XMLField

一个校验值是否为合法的TextField,必须提供参数:schema_path,它是一个用来校验文本的RelaxNG schema的文件系统路径.    

 

从网上找了好长时间,总算是找了个差不多。因为经常用,自己又记不住,所以还是总结一下。帮助自己的同时也能帮助别人:

V=models.CharField(max_length=None[, **options])    #varchar

V=models.EmailField([max_length=75, **options])    #varchar
V=models.URLField([verify_exists=True, max_length=200, **options])    #varchar
V=models.FileField(upload_to=None[, max_length=100, **options])    #varchar
#upload_to指定保存目录可带格式,
V=models.ImageField(upload_to=None[, height_field=None, width_field=None, max_length=100, **options])
V=models.IPAddressField([**options])    #varchar
V=models.FilePathField(path=None[, match=None, recursive=False, max_length=100, **options]) #varchar
V=models.SlugField([max_length=50, **options])    #varchar,标签,内含索引
V=models.CommaSeparatedIntegerField(max_length=None[, **options])    #varchar

V=models.IntegerField([**options])    #int
V=models.PositiveIntegerField([**options])    #int 正整数
V=models.SmallIntegerField([**options])    #smallint
V=models.PositiveSmallIntegerField([**options])    #smallint 正整数
V=models.AutoField(**options)    #int;在Django代码内是自增
V=models.DecimalField(max_digits=None, decimal_places=None[, **options])    #decimal
V=models.FloatField([**options])    #real

V=models.BooleanField(**options)    #boolean或bit

V=models.NullBooleanField([**options])    #bit字段上可以设置上null值

V=models.DateField([auto_now=False, auto_now_add=False, **options])    #date
#auto_now最后修改记录的日期;auto_now_add添加记录的日期
V=models.DateTimeField([auto_now=False, auto_now_add=False, **options])    #datetime
V=models.TimeField([auto_now=False, auto_now_add=False, **options])    #time

V=models.TextField([**options])    #text
V=models.XMLField(schema_path=None[, **options])    #text

——————————————————————————–
V=models.ForeignKey(othermodel[, **options])    #外键,关联其它模型,创建关联索引
V=models.ManyToManyField(othermodel[, **options])    #多对多,关联其它模型,创建关联表
V=models.OneToOneField(othermodel[, parent_link=False, **options])    #一对一,字段关联表属性


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值