V=models.CharField(max_length=None<, **options>) #varchar
V=models.EmailField(<max_length=75, **options="">) #varchar
V=models.URLField(<verify_exists=true, **options="" max_length="200,">) #varchar
V=models.FileField(upload_to=None<, max_length=100, **options>) #varchar #upload_to指定保存目錄可帶格式摘投,
V=models.ImageField(upload_to=None<, height_field=None, width_field=None, max_length=100, **options>)
V=models.IPAddressField(<**options>) #varchar
V=models.FilePathField(path=None<, match=None, recursive=False, max_length=100, **options>) #varchar
V=models.SlugField(<max_length=50, **options="">) #varchar,標(biāo)簽,內(nèi)含索引
V=models.CommaSeparatedIntegerField(max_length=None<, **options>) #varchar
V=models.IntegerField(<**options>) #int
V=models.PositiveIntegerField(<**options>) #int 正整數(shù)
V=models.SmallIntegerField(<**options>) #smallint
V=models.PositiveSmallIntegerField(<**options>) #smallint 正整數(shù)
V=models.AutoField(**options) #int;在Django代碼內(nèi)是自增
V=models.DecimalField(max_digits=None, decimal_places=None<, **options>) #decimal
V=models.FloatField(<**options>) #real V=models.BooleanField(**options) #boolean或bit
V=models.NullBooleanField(<**options>) #bit字段上可以設(shè)置上null值
V=models.DateField(<auto_now=false, **options="" auto_now_add="False,">) #date #auto_now最后修改記錄的日期;auto_now_add添加記錄的日期
V=models.DateTimeField(<auto_now=false, **options="" auto_now_add="False,">) #datetime
V=models.TimeField(<auto_now=false, **options="" auto_now_add="False,">) #time
V=models.TextField(<**options>) #text
V=models.XMLField(schema_path=None<, **options>) #text ——————————————————————————–
V=models.ForeignKey(othermodel<, **options>) #外鍵雷蹂,關(guān)聯(lián)其它模型铺浇,創(chuàng)建關(guān)聯(lián)索引
V=models.ManyToManyField(othermodel<, **options>) #多對(duì)多却舀,關(guān)聯(lián)其它模型逛漫,創(chuàng)建關(guān)聯(lián)表
V=models.OneToOneField(othermodel<, parent_link=False, **options>) #一對(duì)一,字段關(guān)聯(lián)表屬性
django 中model作為數(shù)據(jù)資源指定了字段以及一些處理該相應(yīng)的功能赘艳。通常情況下酌毡,每個(gè)model對(duì)應(yīng)數(shù)據(jù)庫(kù)中的一張表 每個(gè)model都是從django.core.meta.Model中派生出來(lái)的model中每個(gè)屬性(class attribute)對(duì)應(yīng)著數(shù)據(jù)庫(kù)表中的一個(gè)字段非字段信息(Modelmetadata)在類中被稱作METAField Objects每個(gè)class attributes對(duì)應(yīng)著數(shù)據(jù)庫(kù)中的一個(gè)字段,其應(yīng)該是由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關(guān)鍵字以外枷踏,第一個(gè)可選參數(shù)是用來(lái)為字段命名的,如果不設(shè)置掰曾,系統(tǒng)會(huì)自動(dòng)為起起名旭蠕。sites = meta.ManyToManyField(site,verbose_name="list of sites")
Field 選項(xiàng)
null???? null 缺省設(shè)置為false.通常不將其用于字符型字段上,比如CharField,TextField上.字符型字段如果沒(méi)有值會(huì)返回空字符串。
blank??? 該字段是否可以為空掏熬。如果為假佑稠,則必須有值
choices??? 一個(gè)用來(lái)選擇值的2維元組。第一個(gè)值是實(shí)際存儲(chǔ)的值旗芬,第二個(gè)用來(lái)方便進(jìn)行選擇舌胶。??? SEX_CHOICES= (('F','Female'),('M','Male'),) coredb_columndb_index??? 如果為真將為此字段創(chuàng)建索引
default??? 缺省值
editable??? 如果為假,admin模式下將不能改寫(xiě)疮丛。缺省為真
help_text??? admin模式下幫助文檔
primary_key??? 設(shè)置主鍵幔嫂。如果沒(méi)有設(shè)置django創(chuàng)建表時(shí)會(huì)自動(dòng)加上??? 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轉(zhuǎn)換為radio顯示。只用于ForeignKey或者設(shè)置了choices
unique??? 數(shù)據(jù)唯一
unique_for_date??? title =? meta.CharField(maxlength=30,unique_for_date='pub_date')??? 系統(tǒng)將不允許title和pub_date兩個(gè)都相同的數(shù)據(jù)重復(fù)出現(xiàn) unique_for_month / unique_for_year
validator_list??? 有效性檢查誊薄。非有效產(chǎn)生 django.core.validators.ValidationError 錯(cuò)誤
Field Types
AutoField???? 自動(dòng)增長(zhǎng)的整型字段履恩。通常無(wú)需自己添加
BooleanFieldCharField??? 對(duì)于大量文字應(yīng)該使用TextField。參數(shù): maxlength
DateField??? 參數(shù):
auto_now? 自動(dòng)設(shè)置為對(duì)象保存時(shí)刻的時(shí)間呢蔫。對(duì)于類似最后改動(dòng)之類的應(yīng)用很有效???
auto_now_add? 從最初保存對(duì)象至今的增量時(shí)間
DateTimeField 同上EmailField???? 檢查是否為email的CharField字段
FileField??? 保存文件的相對(duì)路徑名稱??? 絕對(duì)路徑需要在setting中設(shè)置 MEDIA_ROOT切心。對(duì)于ImageField設(shè)置 MEDIA_URL。??? 參數(shù)upload_to.相對(duì)于MEDIA_ROOT目錄的子目錄??? 通過(guò)get_<fieldname>_url獲取絕對(duì)路徑
FilePathField??? 通過(guò)給定參數(shù)獲取文件列表(個(gè)人感覺(jué))?path 必須要有咐刨。 文件系統(tǒng)的絕對(duì)路徑??? match 可選昙衅。一個(gè)正則表達(dá)式。用來(lái)做文件篩選過(guò)濾??? recursive 可選定鸟。True 包含子目錄查找??? FilePathField(path="/home/images", match="foo.*" , recursive=True)
FloatField??? 浮點(diǎn)數(shù)字段而涉。兩個(gè)必須選項(xiàng)??? max_digits 數(shù)字最多位數(shù)??? decimal_places 小數(shù)點(diǎn)位置??? meta.FloatField(...,max_digits=5,decimal_places=2)?? /////100.00 ImageField
基本上同F(xiàn)ileField.會(huì)進(jìn)行文件格式檢查。兩個(gè)額外選項(xiàng)??? height_field, width_field 如果設(shè)置這兩項(xiàng)联予,會(huì)自動(dòng)對(duì)圖片進(jìn)行縮放后再保存???
需要python?Imaging library
IntegerFieldIPAddressField???
"10.1.1.3" NullBooleanField???
比BooleanField多了一個(gè)NULL狀態(tài) PhoneNumberField???
美國(guó)格式電話號(hào)碼 xxx-xxx-xxxx. CharField PositiveIntegerField???
正整數(shù) PositiveSmallIntegerField??? 一個(gè)小的正整數(shù)啼县。根據(jù)數(shù)據(jù)庫(kù)的設(shè)置 SlugField??? 小片斷。
什么都可以沸久。通常用來(lái)存url??? SlugField 被暗指 maxlength=50 db_index=True???
選項(xiàng): prepopulate_from 一個(gè)用來(lái)自動(dòng)生成slug的字段列表 SmallIntegerFieldTextField TimeField
選項(xiàng): auto-population(可能不對(duì)) from DateField and DateTimeField URLField???
選項(xiàng): verify_exists? 如果為T(mén)rue 季眷,系統(tǒng)自動(dòng)檢查該url是否存在不為404 USStateField???
兩字符美國(guó)州簡(jiǎn)寫(xiě) XMLField??? 保存xml數(shù)據(jù)。???
選項(xiàng):schema_path .指定relaxNG格式schema用來(lái)檢驗(yàn)xml合法性