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,標簽,內含索引
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代碼內是自增
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字段上可以設置上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>) #外鍵,關聯(lián)其它模型,創(chuàng)建關聯(lián)索引
V=models.ManyToManyField(othermodel<, **options>) #多對多,關聯(lián)其它模型,創(chuàng)建關聯(lián)表
V=models.OneToOneField(othermodel<, parent_link=False, **options>) #一對一,字段關聯(lián)表屬性
django 中model作為數(shù)據(jù)資源指定了字段以及一些處理該相應的功能。通常情況下,每個model對應數(shù)據(jù)庫中的一張表 每個model都是從django.core.meta.Model中派生出來的model中每個屬性(class attribute)對應著數(shù)據(jù)庫表中的一個字段非字段信息(Modelmetadata)在類中被稱作METAField Objects每個class attributes對應著數(shù)據(jù)庫中的一個字段,其應該是由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關鍵字以外,第一個可選參數(shù)是用來為字段命名的,如果不設置,系統(tǒng)會自動為起起名。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??? 如果為真將為此字段創(chuàng)建索引
default??? 缺省值
editable??? 如果為假,admin模式下將不能改寫。缺省為真
help_text??? admin模式下幫助文檔
primary_key??? 設置主鍵。如果沒有設置django創(chuà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轉換為radio顯示。只用于ForeignKey或者設置了choices
unique??? 數(shù)據(jù)唯一
unique_for_date??? title =? meta.CharField(maxlength=30,unique_for_date='pub_date')??? 系統(tǒng)將不允許title和pub_date兩個都相同的數(shù)據(jù)重復出現(xiàn) unique_for_month / unique_for_year
validator_list??? 有效性檢查。非有效產生 django.core.validators.ValidationError 錯誤
Field Types
AutoField???? 自動增長的整型字段。通常無需自己添加
BooleanFieldCharField??? 對于大量文字應該使用TextField。參數(shù): maxlength
DateField??? 參數(shù):
auto_now? 自動設置為對象保存時刻的時間。對于類似最后改動之類的應用很有效???
auto_now_add? 從最初保存對象至今的增量時間
DateTimeField 同上EmailField???? 檢查是否為email的CharField字段
FileField??? 保存文件的相對路徑名稱??? 絕對路徑需要在setting中設置 MEDIA_ROOT。對于ImageField設置 MEDIA_URL。??? 參數(shù)upload_to.相對于MEDIA_ROOT目錄的子目錄??? 通過get_<fieldname>_url獲取絕對路徑
FilePathField??? 通過給定參數(shù)獲取文件列表(個人感覺)?path 必須要有。 文件系統(tǒng)的絕對路徑??? match 可選。一個正則表達式。用來做文件篩選過濾??? recursive 可選。True 包含子目錄查找??? FilePathField(path="/home/images", match="foo.*" , recursive=True)
FloatField??? 浮點數(shù)字段。兩個必須選項??? max_digits 數(shù)字最多位數(shù)??? decimal_places 小數(shù)點位置??? meta.FloatField(...,max_digits=5,decimal_places=2)?? /////100.00 ImageField
基本上同F(xiàn)ileField.會進行文件格式檢查。兩個額外選項??? height_field, width_field 如果設置這兩項,會自動對圖片進行縮放后再保存???
需要python?Imaging library
IntegerFieldIPAddressField???
"10.1.1.3" NullBooleanField???
比BooleanField多了一個NULL狀態(tài) PhoneNumberField???
美國格式電話號碼 xxx-xxx-xxxx. CharField PositiveIntegerField???
正整數(shù) PositiveSmallIntegerField??? 一個小的正整數(shù)。根據(jù)數(shù)據(jù)庫的設置 SlugField??? 小片斷。
什么都可以。通常用來存url??? SlugField 被暗指 maxlength=50 db_index=True???
選項: prepopulate_from 一個用來自動生成slug的字段列表 SmallIntegerFieldTextField TimeField
選項: auto-population(可能不對) from DateField and DateTimeField URLField???
選項: verify_exists? 如果為True ,系統(tǒng)自動檢查該url是否存在不為404 USStateField???
兩字符美國州簡寫 XMLField??? 保存xml數(shù)據(jù)。???
選項:schema_path .指定relaxNG格式schema用來檢驗xml合法性