python-django 模型model字段類型說明

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合法性

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容