Python--Django的Models.py中的字段类型以及字段选项

整理了模型中几种字段类型及字段选项,帮助开发使用

一、字段类型

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
      • 小数点后的数字位数

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,第一次创建对象时的时间赋值给当前属性
  • 说明
    • 该字段默认对应的表单控件是一个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版权协议,转载请附上原文出处链接和本声明。