摘自 http://www.cnblogs.com/wt869054461/p/4014271.html

  1. V=models.AutoField(**options)    #int;在Django代码内是自增
  2.  
  3. V=models.DecimalField(max_digits=None, decimal_places=None<, **options>)    #decimal
  4.  
  5. V=models.FloatField(<**options>)    #real V=models.BooleanField(**options)    #boolean或bit
  6.  
  7. V=models.NullBooleanField(<**options>)    #bit字段上可以设置上null值
  8.  
  9. V=models.DateField(<auto_now=false, **options="" auto_now_add="False,">)  #date #auto_now最后修改记录的日期;auto_now_add添加记录的日期
  10.  
  11. V=models.DateTimeField(<auto_now=false, **options="" auto_now_add="False,">)    #datetime
  12.  
  13. V=models.TimeField(<auto_now=false, **options="" auto_now_add="False,">)    #time
  14.  
  15. V=models.TextField(<**options>)    #text
  16.  
  17. V=models.XMLField(schema_path=None<, **options>)    #text ——————————————————————————–
  18.  
  19. V=models.ForeignKey(othermodel<, **options>)    #外键,关联其它模型,创建关联索引
  20.  
  21. V=models.ManyToManyField(othermodel<, **options>)    #多对多,关联其它模型,创建关联表
  22.  
  23. V=models.OneToOneField(othermodel<, parent_link=False, **options>)    #一对一,字段关联表属性
  1. V=models.AutoField(**options)    #int;在Django代码内是自增
  2.  
  3. V=models.DecimalField(max_digits=None, decimal_places=None<, **options>)    #decimal
  4.  
  5. V=models.FloatField(<**options>)    #real V=models.BooleanField(**options)    #boolean或bit
  6.  
  7. V=models.NullBooleanField(<**options>)    #bit字段上可以设置上null值
  8.  
  9. V=models.DateField(<auto_now=false, **options="" auto_now_add="False,">)  #date #auto_now最后修改记录的日期;auto_now_add添加记录的日期
  10.  
  11. V=models.DateTimeField(<auto_now=false, **options="" auto_now_add="False,">)    #datetime
  12.  
  13. V=models.TimeField(<auto_now=false, **options="" auto_now_add="False,">)    #time
  14.  
  15. V=models.TextField(<**options>)    #text
  16.  
  17. V=models.XMLField(schema_path=None<, **options>)    #text ——————————————————————————–
  18.  
  19. V=models.ForeignKey(othermodel<, **options>)    #外键,关联其它模型,创建关联索引
  20.  
  21. V=models.ManyToManyField(othermodel<, **options>)    #多对多,关联其它模型,创建关联表
  22.  
  23. V=models.OneToOneField(othermodel<, parent_link=False, **options>)    #一对一,字段关联表属性

 

django 中model 作为数据资源指定了字段以及一些处理该相应的功能。通常情况下,每个model对应数据库中的一张表 每个model都是从django.core.meta.Model中派生出来的model中每个属性(class attribute)对应着数据库表中的一个字段非字段信息(Model metadata)在类中被称作METAField Objects每个class attributes对应着数据库中的一个字段,其应该是由meta.Filed的派生的。

from django.core import metaclass Person(meta.Model):    first_name = meta.CharField(maxlength=30)    last_name = meta.CharFiled("lastname",maxlength=30) 除了 ForeignKey, ManytoManyFiled OneToOneField 使用verbose_name关键字以外,第一个可选参数是用来为字段命名的,如果不设置,系统会自动为起起名。sites = meta.ManyToManyField(site,verbose_name="list of sites")

Field 选项

  • null     null 缺省设置为false.通常不将其用于字符型字段上,比如CharField,TextField上.字符型字段如果没有值会返回空字符串。
  • blank    该字段是否可以为空。如果为假,则必须有值
  • choices    一个用来选择值的2维元组。第一个值是实际存储的值,第二个用来方便进行选择。    SEX_CHOICES= (('F','Female'),('M','Male'),) coredb_columndb_index    如果为真将为此字段创建索引
  • default    缺省值
  • editable    如果为假,admin模式下将不能改写。缺省为真
  • help_text    admin模式下帮助文档
  • primary_key    设置主键。如果没有设置django创建表时会自动加上    id = meta.AutoField('ID', primary_key=True)    primary_key=True implies blank=False, null=False and unique=True. Only one primary key is allowed on an object. radio_admin    用于admin模式下将select转换为radio显示。只用于ForeignKey或者设置了choices
  • unique    数据唯一
  • unique_for_date    title =  meta.CharField(maxlength=30,unique_for_date='pub_date')    系统将不允许title和pub_date两个都相同的数据重复出现 unique_for_month / unique_for_year
  • validator_list    有效性检查。非有效产生 django.core.validators.ValidationError 错误
  • Field Types
  • AutoField     自动增长的整型字段。通常无需自己添加
  • BooleanFieldCharField    对于大量文字应该使用TextField。参数: maxlength
  • DateField    参数:
  • auto_now  自动设置为对象保存时刻的时间。对于类似最后改动之类的应用很有效   
  • auto_now_add  从最初保存对象至今的增量时间
  • DateTimeField 同上EmailField     检查是否为email的CharField字段
  • FileField    保存文件的相对路径名称    绝对路径需要在setting中设置 MEDIA_ROOT。对于ImageField设置 MEDIA_URL。    参数upload_to.相对于MEDIA_ROOT目录的子目录    通过get_<fieldname>_url获取绝对路径
  • FilePathField    通过给定参数获取文件列表(个人感觉)    path 必须要有。 文件系统的绝对路径    match 可选。一个正则表达式。用来做文件筛选过滤    recursive 可选。True 包含子目录查找    FilePathField(path="/home/images", match="foo.*" , recursive=True)
  • FloatField    浮点数字段。两个必须选项    max_digits 数字最多位数    decimal_places 小数点位置    meta.FloatField(...,max_digits=5,decimal_places=2)   /////100.00 ImageField   

基本上同FileField.会进行文件格式检查。两个额外选项    height_field, width_field 如果设置这两项,会自动对图片进行缩放后再保存   

需要 python Imaging library

IntegerFieldIPAddressField

"10.1.1.3" NullBooleanField

比BooleanField多了一个NULL状态 PhoneNumberField

美国格式电话号码 xxx-xxx-xxxx. CharField PositiveIntegerField

正整数 PositiveSmallIntegerField    一个小的正整数。根据数据库的设置 SlugField    小片断。

什么都可以。通常用来存url    SlugField 被暗指 maxlength=50 db_index=True

选项: prepopulate_from 一个用来自动生成slug的字段列表 SmallIntegerFieldTextField TimeField

选项: auto-population(可能不对) from DateField and DateTimeField URLField

选项: verify_exists  如果为True ,系统自动检查该url是否存在不为404 USStateField

两字符美国州简写 XMLField    保存xml数据。

选项:schema_path .指定relaxNG格式schema用来检验xml合法性

字段列表纵览表

字段名

参数

意义

AutoField 

 

一个能够根据可用ID自增的 IntegerField 

BooleanField

 

一个真/假(true/false)字段

CharField

 (max_length)

一个字符串字段,适用于中小长度的字符串。对于长段的文字,请使用 TextField

CommaSeparatedIntegerField

 (max_length)

一个用逗号分隔开的整数字段

DateField

([auto_now], [auto_now_add])

日期字段

DateTimeField

 

时间日期字段,接受跟 DateField 一样的额外选项

EmailField

 

一个能检查值是否是有效的电子邮件地址的 CharField 

FileField 

(upload_to)

一个文件上传字段

FilePathField

(path,[match],[recursive])

一个拥有若干可选项的字段,选项被限定为文件系统中某个目录下的文件名

FloatField

(max_digits,decimal_places)

一个浮点数,对应Python中的 float 实例

ImageField

(upload_to, [height_field] ,[width_field])

像 FileField 一样,只不过要验证上传的对象是一个有效的图片。

IntegerField

 

一个整数。

IPAddressField

 

一个IP地址,以字符串格式表示(例如: "24.124.1.30" )。

NullBooleanField

 

就像一个 BooleanField ,但它支持 None /Null 。

PhoneNumberField 

 

它是一个 CharField ,并且会检查值是否是一个合法的美式电话格式

PositiveIntegerField 

 

和 IntegerField 类似,但必须是正值。

PositiveSmallIntegerField 

 

与 PositiveIntegerField 类似,但只允许小于一定值的值,最大值取决于数据库.

SlugField

 

 嵌条 就是一段内容的简短标签,这段内容只能包含字母、数字、下

划线或连字符。通常用于URL中

SmallIntegerField

 

和 IntegerField 类似,但是只允许在一个数据库相关的范围内的数值(通常是-32,768到

+32,767)

TextField

 

一个不限长度的文字字段

TimeField 

 

时分秒的时间显示。它接受的可指定参数与 DateField 和 DateTimeField 相同。

URLField

 

用来存储URL的字段。

USStateField

 

美国州名称缩写,两个字母。

XMLField 

(schema_path)

它就是一个 TextField ,只不过要检查值是匹配指定schema的合法XML。

通用字段参数列表(所有的字段类型都可以使用下面的参数,所有的都是可选的。)

参数名

意义

null 

如果设置为 True 的话,Django将在数据库中存储空值为 NULL 。默认为 False 。 

blank 

如果是 True ,该字段允许留空,默认为 False 。

choices

一个包含双元素元组的可迭代的对象,用于给字段提供选项。

db_column

当前字段在数据库中对应的列的名字。

db_index

如果为 True ,Django会在创建表格(比如运行 manage.py syncdb )时对这一列创建数据库索引。

default

字段的默认值

editable 

如果为 False ,这个字段在管理界面或表单里将不能编辑。默认为 True 。

help_text 

在管理界面表单对象里显示在字段下面的额外帮助文本。

primary_key

如果为 True ,这个字段就会成为模型的主键。

radio_admin 

默认地,对于 ForeignKey 或者拥有 choices 设置的字段,Django管理界面会使用列表选择框(<select>)。如果 radio_admin 设置为 True 的话,Django就会使用单选按钮界面。 

unique

如果是 True ,这个字段的值在整个表中必须是唯一的。

unique_for_date 

把它的值设成一个 DataField 或者 DateTimeField 的字段的名称,可以确保字段在这个日期内不会出现重复值。

unique_for_month

和 unique_for_date 类似,只是要求字段在指定字段的月份内唯一。

unique_for_year

和 unique_for_date 及 unique_for_month 类似,只是时间范围变成了一年。

verbose_name

除 ForeignKey 、 ManyToManyField 和 OneToOneField 之外的字段都接受一个详细名称作为第一个位置参数。

django model常用字段类型的更多相关文章

  1. Django models 常用字段类型

    1.CharField字符串字段,存较短的字符串,长文本要用TextField.必须的参数:max_length 字符的最大长度2.TextField容量很大的文本字段.admin中用 <tex ...

  2. Django中的常用字段类型与参数

    Django中的常用字段类型 1. 数值型 以下都是数值相关的,比如AutoField,它在MySQL中的类型为int(11),而BooleanField在MySQL中对应的类型是tinyint(1) ...

  3. Django ORM 常用字段和参数

    Django ORM 常用字段和参数 一:常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. I ...

  4. Django(ORM常用字段)

    day68 参考:http://www.cnblogs.com/liwenzhou/p/8688919.html 1. Django ORM常用字段:             1. AutoField ...

  5. Django框架之第六篇(模型层)--单表查询和必知必会13条、单表查询之双下划线、Django ORM常用字段和参数、关系字段

    单表查询 补充一个知识点:在models.py建表是 create_time = models.DateField() 关键字参数: 1.auto_now:每次操作数据,都会自动刷新当前操作的时间 2 ...

  6. Django中常用字段

    一.Django框架的常用字段 Django ORM 常用字段和参数 常用字段 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列 ...

  7. Django orm常用字段和字段参数

    1.Object Relational Mapping(ORM) 1.1ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象 ...

  8. SQL常用字段类型

    中文常用字段类型 1.   名称类    nvarchar(10) 2.   数量       int 3.   时间      date 4.   货币      money 5.   编号     ...

  9. Django中ORM常用字段类型及参数

    常用字段: <1> CharField 字符串字段, 用于较短的字符串. CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的 ...

随机推荐

  1. md5sum/opensll md5

    http://m.blog.csdn.net/article/details?id=42041329 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Mess ...

  2. IAR ------- 在线调试技巧

    调试模式下,右击某一行选“Set Next Statement”,可以不执行中间程序,执行点直接到此行,用于不执行某些代码.

  3. Xpath语法与lxml库的用法

    BeautifulSoup 已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法. 1.安装 pip install lxml 2 ...

  4. python 中__getitem__ 和 __iter__ 的区别

    # -*- coding: utf-8 -*- class Library(object): def __init__(self): self.books = { 'title' : 'a', 'ti ...

  5. COGS 5. P服务点设置

    5. P服务点设置 http://www.cogs.pro/cogs/problem/problem.php?pid=5 ★★   输入文件:djsc.in   输出文件:djsc.out   简单对 ...

  6. 【转】Ubuntu+apache绑定多个域名

    1. 将 http://www.a.com 与 http://www.b.com 的DNS解析到你的服务器IP上. 2. 删除apache的默认主机配置文件.你也不希望创建2个虚拟主机后人家还能直接访 ...

  7. phpexcel 导入导出excel表格

    phpexcel中文实用手册 转载:http://www.cnblogs.com/freespider/p/3284828.html 下面是总结的几个使用方法 include 'PHPExcel.ph ...

  8. c++刷题(18/100)树

    题目1:二叉搜索树的第k个节点 给定一颗二叉搜索树,请找出其中的第k小的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4. 思路:因为是二叉搜索树 ...

  9. Django认证系统实现的web页面

    结合数据库.ajax.js.Djangoform表单和认证系统的web页面 一:数据模块 扩展了Django中的user表,增加了自定义的字段 from django.db import models ...

  10. Djangoform表单Ajax控制跳转

    需求: 1:在登陆页面输入账号密码后,ajax异步提交数据给后端验证. 2:验证通过后,后端指定跳转页面,并把页面封装进返回的Json数据中,由ajax控制from表单跳转到目标页面 一:登陆页面HT ...