django 模型models 常用字段

1.?django?模型models 常用字段

1鼻种、models.AutoField

自增列 = int(11)

如果沒(méi)有的話,默認(rèn)會(huì)生成一個(gè)名稱(chēng)為 id 的列

如果要顯式的自定義一個(gè)自增列篙贸,必須設(shè)置primary_key=True枫疆。

2、models.CharField

字符串字段

必須設(shè)置max_length參數(shù)

3寝贡、models.BooleanField

布爾類(lèi)型=tinyint(1)

不能為空值依,可添加Blank=True

4鳞滨、models.ComaSeparatedIntegerField

用逗號(hào)分割的數(shù)字=varchar

繼承CharField蟆淀,所以必須 max_lenght 參數(shù)

5熔任、models.DateField

日期類(lèi)型 date

DateField.auto_now:保存時(shí)自動(dòng)設(shè)置該字段為現(xiàn)在日期,最后修改日期

DateField.auto_now_add:當(dāng)該對(duì)象第一次被創(chuàng)建是自動(dòng)設(shè)置該字段為現(xiàn)在日期甫匹,創(chuàng)建日期惦费。

6、models.DateTimeField

日期時(shí)間類(lèi)型 datetime

同DateField的參數(shù)

7恍箭、models.Decimal

十進(jìn)制小數(shù)類(lèi)型 = decimal

DecimalField.max_digits:數(shù)字中允許的最大位數(shù)

DecimalField.decimal_places:存儲(chǔ)的十進(jìn)制位數(shù)

8扯夭、models.EmailField

一個(gè)帶有檢查 Email 合法性的 CharField

9鞍匾、models.FloatField

浮點(diǎn)類(lèi)型 = double

10、models.IntegerField

整形

11构拳、models.BigIntegerField

長(zhǎng)整形

integer_field_ranges = {undefined

‘SmallIntegerField’: (-32768, 32767),

‘IntegerField’: (-2147483648, 2147483647),

‘BigIntegerField’: (-9223372036854775808, 9223372036854775807),

‘PositiveSmallIntegerField’: (0, 32767),

‘PositiveIntegerField’: (0, 2147483647),

}

12隐圾、models.GenericIPAddressField

一個(gè)帶有檢查 IP地址合法性的 CharField

13、models.NullBooleanField

允許為空的布爾類(lèi)型

14蜜笤、models.PositiveIntegerFiel

正整數(shù)

15盐碱、models.PositiveSmallIntegerField

正smallInteger

16瓮顽、models.SlugField

減號(hào)、下劃線缕贡、字母拣播、數(shù)字

17贮配、models.SmallIntegerField

數(shù)字

數(shù)據(jù)庫(kù)中的字段有:tinyint、smallint昼蛀、int圆存、bigint

18、models.TextField

大文本送淆。默認(rèn)對(duì)應(yīng)的form標(biāo)簽是textarea偷崩。

19撞羽、models.TimeField

時(shí)間 HH:MM[:ss[.uuuuuu]]

20、models.URLField

一個(gè)帶有URL合法性校驗(yàn)的CharField谒出。

21笤喳、models.BinaryField

二進(jìn)制

存儲(chǔ)二進(jìn)制數(shù)據(jù)。不能使用filter函數(shù)獲得QuerySet蒙畴。

22呜象、models.ImageField

圖片

ImageField.height_field恭陡、ImageField.width_field:如果提供這兩個(gè)參數(shù),則圖片將按提供的高度和寬度規(guī)格保存著淆。

該字段要求 Python Imaging 庫(kù)Pillow拴疤。

會(huì)檢查上傳的對(duì)象是否是一個(gè)合法圖片。

23、models.FileField(upload_to=None[, max_length=100, ** options])

文件

FileField.upload_to:一個(gè)用于保存上傳文件的本地文件系統(tǒng)路徑凫佛,該路徑由 MEDIA_ROOT 中設(shè)置

這個(gè)字段不能設(shè)置primary_key和unique選項(xiàng).在數(shù)據(jù)庫(kù)中存儲(chǔ)類(lèi)型是varchar愧薛,默認(rèn)最大長(zhǎng)度為100

24衫画、models.FilePathField(path=None[, math=None, recursive=False, max_length=100, **options])

FilePathField.path:文件的絕對(duì)路徑削罩,必填

FilePathField.match:用于過(guò)濾路徑下文件名的正則表達(dá)式,該表達(dá)式將用在文件名上(不包括路徑)进陡。

FilePathField.recursive:True 或 False微服,默認(rèn)為 False,指定是否應(yīng)包括所有子目錄的路徑糙麦。

例如:FilePathField(path="/home/images", match=“foo.*”, recursive=True)

將匹配“/home/images/foo.gif”但不匹配“/home/images/foo/bar.gif”

2. django 模型models 字段常用參數(shù)

1赡磅、null

如果是True,Django會(huì)在數(shù)據(jù)庫(kù)中將此字段的值置為NULL鲜滩,默認(rèn)值是False

2徙硅、blank

如果為T(mén)rue時(shí)django的 Admin 中添加數(shù)據(jù)時(shí)可允許空值搞疗,可以不填匿乃。如果為False則必須填。默認(rèn)是False泄隔。

null純粹是與數(shù)據(jù)庫(kù)有關(guān)系的宛徊。而blank是與頁(yè)面必填項(xiàng)驗(yàn)證有關(guān)的

3闸天、primary_key = False

主鍵,對(duì)AutoField設(shè)置主鍵后湾揽,就會(huì)代替原來(lái)的自增 id 列

4笼吟、auto_now 和 auto_now_add

auto_now 自動(dòng)創(chuàng)建—無(wú)論添加或修改贷帮,都是當(dāng)前操作的時(shí)間

auto_now_add 自動(dòng)創(chuàng)建—永遠(yuǎn)是創(chuàng)建時(shí)的時(shí)間

5皿桑、choices

一個(gè)二維的元組被用作choices蔬啡,如果這樣定義镀虐,Django會(huì)select box代替普通的文本框刮便,

并且限定choices的值是元組中的值

GENDER_CHOICE = (

(u’M’, u’Male’),

(u’F’, u’Female’),

)

gender = models.CharField(max_length=2,choices = GENDER_CHOICE)

6恨旱、max_length

字段長(zhǎng)度

7、default

默認(rèn)值

8谆沃、verbose_name

Admin中字段的顯示名稱(chēng)仪芒,如果不設(shè)置該參數(shù)時(shí)掂名,則與屬性名。

9锌介、db_column

數(shù)據(jù)庫(kù)中的字段名稱(chēng)

10孔祸、unique=True

不允許重復(fù)

11肿嘲、db_index = True

數(shù)據(jù)庫(kù)索引

12筑公、editable=True

在Admin里是否可編輯

13匣屡、error_messages=None

錯(cuò)誤提示

14、auto_created=False

自動(dòng)創(chuàng)建

15誉结、help_text

在Admin中提示幫助信息

16惩坑、validators=[]

驗(yàn)證器

17、upload-to

文件上傳時(shí)的保存上傳文件的目錄

models.py

# -- coding: utf-8 --

from?future?import unicode_literals

from django.db import models

class UserInfo(models.Model):

userName = models.CharField(max_length=30) #用戶名

passWord = models.CharField(max_length=30) #密碼

gendle = models.BooleanField() #性別

birthday = models.DateField() #出生日期

weigth = models.FloatField() #體重

heigth = models.IntegerField() #身高

email = models.EmailField() #郵箱

host = models.GenericIPAddressField() #IP地址

introduce = models.TextField() #個(gè)人簡(jiǎn)介

blog = models.URLField() #博客地址

photo = models.ImageField() #照片

CV = models.FilePathField() #個(gè)人簡(jiǎn)歷文件

createDate = models.DateTimeField() #帳號(hào)申請(qǐng)時(shí)間

執(zhí)行結(jié)果:

3.常見(jiàn)異常處理

ERRORS:

web.UserInfo.photo: (fields.E210) Cannot use ImageField because Pillow is not installed.

HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command “pip install Pillow”.

原因:

這是因?yàn)槭褂昧薎mageField()字段,該字段是直接在數(shù)據(jù)庫(kù)中存儲(chǔ)圖片的永票,數(shù)據(jù)庫(kù)中實(shí)際存儲(chǔ)時(shí)要使用python的Pillow模塊對(duì)圖片進(jìn)行處理后才能存儲(chǔ)進(jìn)去滥沫。因此因需使用pip install Pillow 安裝該模塊即可解決該報(bào)錯(cuò)侣集。

2)

ERRORS:

在執(zhí)行python manage.py makemigrations 時(shí)需要手動(dòng)選擇處理方法:

You are trying to add a non-nullable field ‘CV’ to userinfo without a default; we can’t do that (the database needs something to populate existing rows).

Please select a fix:

Provide a one-off default now (will be set on all existing rows with a null value for this column)

Quit, and let me add a default in models.py

Select an option: 1

Please enter the default value now, as valid Python

The datetime and django.utils.timezone modules are available, so you can do e.g. timezone.now

Type ‘exit’ to exit this prompt

timezone.now

原因:

這是因?yàn)閁serInfo數(shù)據(jù)表中已經(jīng)有了"userName"和"passWord" 這兩個(gè)字段,當(dāng)在新增字段時(shí)就會(huì)出現(xiàn)這種Warning兰绣。是由于django框架在生成SQL語(yǔ)句時(shí)發(fā)現(xiàn)數(shù)據(jù)表不為空世分,擔(dān)心新增不為Null的字段添加到該表中時(shí),表中以前的數(shù)據(jù)行在填充這些字段時(shí)需要填充的值不明確狭魂,所以才會(huì)詢問(wèn)用戶處理方式罚攀。

選1,則會(huì)在已存在行中添加null,選2雌澄,則會(huì)要求在models.py中添加默認(rèn)值斋泄。

在models.py中設(shè)置默認(rèn)值的方法:

host = models.GenericIPAddressField(default = ‘127.0.0.1’)

執(zhí)行python makemigrations正常,但是執(zhí)行python migrate 報(bào)錯(cuò)炫掐,之后再執(zhí)行無(wú)法生效的處理辦法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市睬涧,隨后出現(xiàn)的幾起案子募胃,更是在濱河造成了極大的恐慌,老刑警劉巖畦浓,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痹束,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡讶请,警方通過(guò)查閱死者的電腦和手機(jī)祷嘶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)夺溢,“玉大人论巍,你說(shuō)我怎么就攤上這事》缦欤” “怎么了嘉汰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)状勤。 經(jīng)常有香客問(wèn)我鞋怀,道長(zhǎng)双泪,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任接箫,我火速辦了婚禮攒读,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辛友。我一直安慰自己薄扁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布废累。 她就那樣靜靜地躺著邓梅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪邑滨。 梳的紋絲不亂的頭發(fā)上日缨,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音掖看,去河邊找鬼匣距。 笑死,一個(gè)胖子當(dāng)著我的面吹牛哎壳,可吹牛的內(nèi)容都是我干的毅待。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼归榕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼尸红!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起刹泄,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤外里,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后特石,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體盅蝗,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年姆蘸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了墩莫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乞旦,死狀恐怖贼穆,靈堂內(nèi)的尸體忽然破棺而出题山,到底是詐尸還是另有隱情兰粉,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布顶瞳,位于F島的核電站玖姑,受9級(jí)特大地震影響愕秫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜焰络,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一戴甩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闪彼,春花似錦甜孤、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至描馅,卻和暖如春把夸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铭污。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工恋日, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嘹狞。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓岂膳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親刁绒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子闷营,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容