1. """
  2. 定义属性
  3.  
  4. 概述
  5. ·django根据属性的类型确定以下信息
  6. ·当前选择的数据库支持字段的类型
  7. ·渲染管理表单时使用的默认html控件
  8. ·在管理站点最低限度的验证
  9.  
  10. ·django会为表增加自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认的主键列
  11.  
  12. ·属性命名限制
  13. ·遵循标识符规则
  14. ·由于django的查询方式,不允许使用连续的下划线
  15.  

  16. ·定义属性时,需要字段类型,字段类型被定义在django.db.models.fields目录下,为了方便使用,被导入到django.db.models中
  17.  
  18. ·使用方式
  19. ·导入from django.db import models
  20. ·通过models.Field创建字段类型的对象,赋值给属性
  21.  
  22. 逻辑删除
  23. ·对于重要数据都做逻辑删除,不做物理删除,实现方法是定义isDelete属性,类型为BooleanField,默认值为False
  24.  
  25. 字段类型
  26. ·AutoField
  27. ·一个根据实际ID自动增长的IntegerField,通常不指定如果不指定,一个主键字段将自动添加到模型中
  28.  
  29. ·CharField(max_length=字符长度)
  30. ·字符串,默认的表单样式是 TextInput
  31.  
  32. ·TextField
  33. ·大文本字段,一般超过4000使用,默认的表单控件是Textarea
  34.  
  35. ·IntegerField
  36. ·整数
  37.  
  38. ·DecimalField(max_digits=None, decimal_places=None)
  39. ·使用python的Decimal实例表示的十进制浮点数
  40. ·参数说明
  41. ·DecimalField.max_digits
  42. ·位数总数
  43. ·DecimalField.decimal_places
  44. ·小数点后的数字位数
  45.  
  46. ·FloatField
  47. ·用Python的float实例来表示的浮点数
  48.  
  49. ·BooleanField
  50. ·true/false 字段,此字段的默认表单控制是CheckboxInput
  51.  
  52. ·NullBooleanField
  53. ·支持null、true、false三种值
  54.  
  55. ·DateField([auto_now=False, auto_now_add=False])
  56. ·使用Python的datetime.date实例表示的日期
  57. ·参数说明
  58. ·DateField.auto_now
  59. ·每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为false
  60. ·DateField.auto_now_add
  61. ·当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false
  62. ·说明
  63. ·该字段默认对应的表单控件是一个TextInput. 在管理员站点添加了一个JavaScript写的日历控件,和一个“Today"的快捷按钮,包含了一个额外的invalid_date错误消息键
  64. ·注意
  65. ·auto_now_add, auto_now, and default 这些设置是相互排斥的,他们之间的任何组合将会发生错误的结果
  66.  
  67. ·TimeField
  68. ·使用Pythondatetime.time实例表示的时间,参数同DateField
  69.  
  70. ·DateTimeField
  71. ·使用Pythondatetime.datetime实例表示的日期和时间,参数同DateField
  72.  
  73. ·FileField
  74. ·一个上传文件的字段,一般用于存文件路径
  75.  
  76. ·ImageField
  77. ·继承了FileField的所有属性和方法,但对上传的对象进行校验,确保它是个有效的image
  78.  
  79. 字段选项
  80. ·概述
  81. ·通过字段选项,可以实现对字段的约束
  82. ·在字段对象时通过关键字参数指定
  83.  
  84. ·null
  85. ·如果为TrueDjango 将空值以NULL 存储到数据库中,默认值是 False
  86.  
  87. ·blank
  88. ·如果为True,则该字段允许为空白,默认值是 False,和NULL不一样
  89.  
  90. ·注意
  91. ·null是数据库范畴的概念,blank是表单验证证范畴的
  92.  
  93. ·db_column
  94. ·字段的名称,如果未指定,则使用属性的名称
  95.  
  96. ·db_index
  97. ·若值为 True, 则在表中会为此字段创建索引,查询会变快,其他操作(增加删除修改)会变慢,用于经常查询的
  98.  
  99. ·default
  100. ·默认值
  101.  
  102. ·primary_key
  103. ·若为 True, 则该字段会成为模型的主键字段
  104.  
  105. ·unique
  106. ·如果为 True, 这个字段在表中必须有唯一值
  107.  
  108. 关系
  109. ·分类
  110. ·ForeignKey:一对多,将字段定义在多的端中
  111. ·ManyToManyField:多对多,将字段定义在两端中
  112. ·OneToOneField:一对一,将字段定义在任意一端中
  113.  
  114. ·用一访问多
  115. ·格式
  116. ·对象.模型类小写_set
  117. ·示例
  118. grade.students_set
  119.  
  120. ·用一访问一
  121. ·格式
  122. ·对象.模型类小写
  123. ·示例
  124. ·grade.students
  125.  
  126. ·访问id
  127. ·格式
  128. ·对象.属性_id
  129. ·示例
  130. ·student.sgrade_id
  131. """

Django_模型字段属性的更多相关文章

  1. Django(七)模型:字段属性、字段选项(参数)

    一.模型类属性命名限制 参考:https://docs.djangoproject.com/zh-hans/3.0/topics/db/models/ 1)不能是python的保留关键字. 2)不允许 ...

  2. 二 Djano模型层之模型字段选项

    字段选项 以下参数是全部字段类型都可用的,而且是可选的 null 如果为True,Django将在数据库中将空值存储为NULL.默认值为False 对于字符串字段,如果设置了null=True意味着& ...

  3. Django_ORM_字段属性

    Django_ORM_字段属性 常用字段 AutoField int自增列,必填参 primary_key=True 默认会自动创建一个列名为id的列 IntegerField 一个整数类型,范围在 ...

  4. django项目模型字段

    一个模型(model)就是一个单独的.确定的数据的信息源,包含了数据的字段和操作方法.通常,每个模型映射为一张数据库中的表. 基本的原则如下: 每个模型在Django中的存在形式为一个Python类 ...

  5. odoo字段属性

    以下为可用的非关联字段类型以及其对应的位置参数: Char(string)是一个单行文本,唯一位置参数是string字段标签. Text(string)是一个多行文本,唯一位置参数是string字段标 ...

  6. orm查询优化 MTV和MVC模型 字段的chioces参数 Ajax

    目录 一.ORM查询优化 1. all()查询 2. only()/defer()方法 (1)only()方法 (2)defer()方法 3. select_related()/prefetch_re ...

  7. odoo字段属性列举

    罗列一些Odoo中的字段属性,基本包含大部分的属性. 常用字段属性 平平无奇常用字段属性 string:字段的标题,在UI视图标签中使用.它是可选项,如未设置,会通过首字母大写及将空格替换成为下划线来 ...

  8. ORM研究3 - odoo fields常用的字段属性

    之前我们已经讲解了odoo ORM中的一些对字段常用的API操作方法,今天我们继续研究一下Odoo orm中字段的一些通用属性字段的使用,学会它们可以为自己创建数据映射并使用有更好的帮助. 通用字段属 ...

  9. Django_模型类详解(七)

    # 定义书籍模型类 class BookInfo(models.Model): btitle = models.CharField(max_length=20) # 书籍名称 bpub_date = ...

随机推荐

  1. 咸鱼的ACM之路:动态规划(DP)学习记录

    按挑战程序设计竞赛介绍的顺序记录一遍学习DP的过程. 1. 01背包问题 问题如下: 有N个物品,每个物品(N[i])都有一定的体积(W[i]),和一定的价值(V[i]) 现在给定一个背包,背包的容量 ...

  2. CSS 美化网页元素

    一.为什么使用CSS 1.有效的传递页面信息 2.使用CSS美化过的页面文本,使页面漂亮.美观,吸引用户 3.可以很好的突出页面的主题内容,使用户第一眼可以看到页面主要内容 4.具有良好的用户体验 二 ...

  3. 54.Python中Meta类常见的配置

    对于一些模型级别的配置.我们可以通过在模型中定义一个类,叫做Meta.然后在这个类中添加一些属性来控制模型的作用. 注意:添加的这个类一定要是Meta,否者的话Django就会不能够识别. from ...

  4. 删除在wireshark中保存的filter的方法

    现在想删除下图的filter,方法是:Edit->preferences->Filter Expressions

  5. 859. Kruskal算法求最小生成树(模板)

    给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数. 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible. 给定一张边带权的无向图G=(V, E),其中V表示 ...

  6. 申请一个美国paypal账户

    近期为了做PayPal支付,进口demo已经写好,就差一个美国PayPal账户进行支付测试,几经折腾,终于申请下来,附上参考链接:   paypal官网: https://www.paypal.com ...

  7. 安装 centos8.1

    阿里云镜像下载链接 http://mirrors.aliyun.com/centos/8.1.1911/isos/x86_64/ 选择 CentOS-8.1.1911-x86_64-dvd1.iso ...

  8. liunx下安装Docker

    1.安装并启动docker 1.检查内核版本,必须是3.10及以上uname -r2.安装docker yum install docker命令安装(需要联网) [root@localhost ~]# ...

  9. 想要学好Git,应该掌握哪些基础知识?

    说到Git,作为程序员的你,在项目开发中一定会使用到或将来也一定会使用到的,但是我相信,很多在使用Git的人,都只是停留一些简单的操作上,比如提交(commit).拉取(pull).推送(push). ...

  10. [0CTF 2016]piapiapia{PHP反序列化漏洞(PHP对象注入)}

    先上学习链接: https://www.freebuf.com/column/202607.html https://www.cnblogs.com/ichunqiu/p/10484832.html ...