Django包含的属性

定义属性
概述:
  1、django根据属性的类型确定以下信息
  2、当前选择的数据库支持字段的类型
  3、渲染管理表单时使用的默认html空间
  4、在管理站点最低限度的验证

注意:

  属性命名限制
  遵循标识符规则
  由于django的查询方式,不允许使用连续的下划线

    Django会为表增加的主键列,每个模型只能有一个主键列,如果选项设置莫属性为主键列后,则django不会再生成默认的主键列
库:
  定义属性时,需要字段类型,字段类型被定义到django.db.models.fields目录下,为了方便使用,被导入到django.db.models中

  使用方式:
    导入from django.db import models
    通过models.Field创建字段类型的对象,赋值给属性

  逻辑删除:
    对于重要的数据都叫逻辑删除,不做物理删除,实现方法是定义isDelete属性,类型为BooleanField.默认值为false

字段类型:

AutoField:
  一个根据实际ID自动增长的IntegerField.通常不指定,如果不指定:一个主键字段将自动添加到模型中
  CharField(max_length=字符长度),字符串,默认的表单样式是TextInput

TextField:
  大文本字段,一般超过4000使用,默认的表单控件是Texttarea

IntegerField:
  整数

DecimalField(max_digits=None,decimal_placces=None):
  使用python的Decimal实例表示的十进制浮点数

参数说明:
    DecimalField.max_digits
      位数总数
    DecimalField.decimal_places
      小数后的数字位数

FloatField:
  用python的float实例来表示的浮点数

BooleanField:
  true/false字段,此字段默认表单控制的是CheckboxInput

NullBooleanField:
  支持null,true,false三种值

DateField([auto_now=false,auto_now_add=False]):
  使用python的datetime.date实例表示的日期

参数说明:
  DateField.auto_now
    每次保存对象时,自动设置该字段为当前时间,用于“最后一次修改”的时间戳,它总是使用当前日期,默认为false
  DateField.auto_now_add
    当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认值为false

注意:
  该字段默认对应的表单控件是一个Textinput,在管理员站点添加了一个javaScript写的日历控件,和一个“Today”的快捷按钮,包含了一个额外的invalid_date错误消息键

  aut_now_add,auto_now,and default这些设置是相互排斥的,他们之间的任何组合将会发生错误的结果

TimeField:
  datetime实例表示的日期和时间,参数同DateField

DateTimeField:
  使用Python的datetime.
  datetime实例表示的日期和时间,参数同DateField

FieldField:
  一个上传文件的字段

ImageField:
  继承了FieldField的所有属性和方法,单对上传的对象进行校验,
  确保他是一个有效的image

字段选项:
 概述:
   1、通过字段选项,可以实现对字段的约束
   2、在字段对象时通过关键字参数指定
  null值:如果为True,Django将控制以NULL存储到数据库中,默认值是false

  blanke 值:如果为true,则该字段允许为空白,默认值是false

  注意:null是数据库范畴的概念,blank是表单验证范畴的

  db_column:字段的名称,如果没有指定,则使用属性的名称

  db_index:若值为True,则在表中会为此字段创建索引

  default:默认值
  unique:唯一约束值

 

Django所包含属性的更多相关文章

  1. django 动态更新属性值

    django 动态更新属性值 class TestTime(models.Model): """ 功能说明:指定测试的每一关总用时 """ ...

  2. System.out.println 报错: 只能运行在方法体内哦, 类里面只包含属性和方法哦,注意!

    类里面包含属性和方法 所以, System.out.println,只能放在方法体内运行,不能放在类里.方法外哦

  3. (19)ASP.NET Core EF创建模型(包含属性和排除属性、主键、生成的值)

    1.什么是Fluent API? EF中内嵌的约定将POCO类映射到表.但是,有时您无法或不想遵守这些约定,需要将实体映射到约定指示外的其他对象,所以Fluent API和注解都是一种方法,这两种方法 ...

  4. Django之ORM属性类型和约束条件

              ORM属性类型: 1. CharField 字符串字段, 用于较短的字符串. CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该 ...

  5. Django request 常用属性

    一.request属性 path  获取url全路径(出去域名外) 用法: request.path GET 用户所有的get内容以字典的形式存储 例:{'name':'alan'} 用法: data ...

  6. .NET MVC强类型参数排除和包含属性

    MVC接收强类型对象时排除或只接收某几个属性时可使用Bind特性: Bind(Include="属性");如果相包含多个属性可以用逗号分割符分开:Bind(Include=&quo ...

  7. 【Js】创建对象的6种方式总结、(底部包含属性名为动态的形式)

    一.new 操作符 + Object 创建对象 1 var person = new Object(); 2 person.name = "lisi"; 3 person.age ...

  8. java中dao层的通用层,通过反射机制,操作数据库的增删改,适用的范围是不包含属性类

    这里首先必须注意的是:类的类名.字段必须与数据库中的表名和字段名保持一致,否则无法通过反射机制作出通用层 /** * 学生信息类,数据库中的StuInfo表 * */public class StuI ...

  9. Python3 多元回归(包含属性的向量化)

    # -*- coding: utf-8 -*- """ Created on Thu Jan 4 19:52:03 2018 @author: markli " ...

随机推荐

  1. 【数据结构】27、红黑树,节点插入,修复平衡操作总结(针对jdk8中hashmap冲突过多链表转红黑树)

    二叉树节点插入 0.如果只有一个节点,那么就直接作为根,涂黑,如果父为黑,或者祖父为空,那么不做操作 1.叔叔节点不为空且为红 那么就修改父,叔叔,祖父节点颜色,最后把当前节点设置为祖父节点,在进行平 ...

  2. 16-1 WEB存储基本操作

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  3. Oracle报错:“ORA-18008: 无法找到 OUTLN 方案 ”的解决方案

    Oracle报错:“ORA-18008: 无法找到 OUTLN 方案 ”的解决方案   2.修改replication_dependency_tracking参数 SQL> alter syst ...

  4. 应用CSS样式表

    首先应该分清楚应用CSS样式表到HTML页面中和将css样式表绑定到HTML页面的对象,是两个不同的概念.像之前说的通过不同的选择器将样式表绑定到HTML页面中的对象,但其实使用的都是同一种方法应用c ...

  5. 215 Kth Largest Element in an Array 数组中的第K个最大元素

    在未排序的数组中找到第 k 个最大的元素.请注意,它是数组有序排列后的第 k 个最大元素,而不是第 k 个不同元素.例如,给出 [3,2,1,5,6,4] 和 k = 2,返回 5.注意事项:你可以假 ...

  6. hdu 1430 魔板 康托展开 + 很好的映射

    http://acm.hdu.edu.cn/showproblem.php?pid=1430 如果从start ---> end,每一次都bfs进行,那么就肯定会超时. 考虑到先把start映射 ...

  7. Nodejs AES加密不一致问题的解决

    最近在做android游戏,客户端与Nodejs服务端数据的交互用AES进行加密,发现Nodejs与java的加密形式不一样.查询N久资料发现java端需要对密钥再MD5加密一遍(我了个大擦),本来对 ...

  8. vue2.0 v-model指令

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. EcliplseJPA2.1和glassfish3.1兼容问题

    之前一个项目,持久层用eclipseJpa2.1实现,web服务器用的是glassfish3.1. 部署完成后测试的时候出现bug,反反复复折腾了n次,最终确认是版本兼容的问题. 或者用glassfi ...

  10. MySQL_将ubuntu18.04上的数据库导出并导入windows10下

    1.使用:mysqldump -uroot -p databasename>filename.sql databasename:要导出的数据库名. filename:指定导出sql文件的文件名. ...