django 字段类型 field type

9 篇文章 0 订阅
7 篇文章 0 订阅
Django model 参考(一)     

django 中model 作为数据资源指定了字段以及一些处理该相应的功能。通常情况下,每个model对应数据库中的一张表

  • 每个model都是从django.core.meta.Model中派生出来的
  • model中每个属性(class attribute)对应着数据库表中的一个字段
  • 非字段信息(Model metadata)在类中被称作META

Field Objects
每个class attributes对应着数据库中的一个字段,其应该是由meta.Filed的派生的。

from django.core import meta
class 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'),)

core
db_column
db_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
     自动增长的整型字段。通常无需自己添加

BooleanField
CharField
     对于大量文字应该使用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

IntegerField
IPAddressField
     "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的字段列表

SmallIntegerField
TextField

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

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

USStateField
     两字符美国州简写

XMLField
     保存xml数据。
     选项:schema_path .指定relaxNG格式schema用来检验xml合法性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值