models.Model中常用的數據字段格式說明


在models.Model中常用的數據字段格式說明

字段格式 可以使用的參數 說明
BigIntegerField 64位的大整數
BooleanField 布爾值,只有True和False兩種
CharField max_length,min_length; 指定的接受字符串長度
DateField auto_now :每次存儲時就自動加入當前日期
auto_now_add: 只有在對象被創建時才加入當前日期(創建日期)
日期格式,可用於datetime.date
DateTimeField 同上 日期格式,對應到datetime.datetime
DecimalField max_digits: 可接受的最大位數
decimal_places: 在所有位數中,小數占幾個位數
定點小數數值數據,適用於python中的Decimal模塊實例
EmailField max_length:最長字數 郵件格式的字段
FloatField 浮點字段
IntegerField 整數字段,是通用性最高的整數格式
PostiveIntegerField 正整數字段
SlugField max_length:最大字符長度 和CharField一樣,一般用來做網址的一部分
TextField 長文字格式,一般用在HTML窗體的Textarea輸入項目中
UrlField max_length:最大字符長度 和CharField一樣,用於記錄url

詳細見django文檔的models說明

字段選項 說明
null 此字段不允許接受存儲空值NULL,默認值為False
blank 此字段不允許接受存儲空白內容,默認值為False
choices 以選項的方式作為此字段的候選值,(只有固定內容的數據可以使用)
default 輸入此字段的默認值
help_text 字段的求助信息
primary_key 把此字段設置為數據表中的主鍵KEY,默認值為False
unique 設置此字段是否為唯一值,默認值為False

Django ORM常用的函數以及修飾詞

函數名稱或修飾詞 說明
filter() 返回符合指定條件的QuerSet
exclude() 返回不符合指定條件的QuerSet
order_by() 串接到QuerSet之后,針對每一指定的字段進行排序
all() 返回所有的的Querset
get() 獲得指定符合條件的唯一元素,如果找不到或者一個以上符合條件,都會產生exception
first()/last() 獲得第1個元素 / 獲得最后一個元素
aggregate() 可以用來計算數據項的聚合函數
exists() 用來檢查是否存在否某指令條件的記錄,通常附加在filter()后面
update() 用來快速更新某些數據記錄中的字段內容
iexact 不區分大小寫的條件設置
contains 設置條件為含有某一字符串就符合,如SQL 語句中的 LIKE
icontains 設置條件為含有某一字符串就符合,如SQL 語句中的 ILIKE
in 提供一個列表,只有符合列表中的任何一個值均可以
gt / gte 大於 / 大於等於
lt / lte 小於 / 小於等於

一些函數如 reverse() 、exists() 等可以串接在另一些函數后面,用於進一步過濾信息,修飾詞放在參數中,在字段后面加上2個下划線之后再串接,可以為條件設置增加風多的彈性。

Product.objects.filter(num__lt=2)、
Product.objects.all().orber_by('-price')

注意:

xxxx = modeks.ForeigenKey(Xaaa,on_delete=models.CASCADE)

​ 創建表關聯的時候會有一個ForeignKey字段,她負責指向另一張表的主鍵Primary Key,代表這個表格依附於另一張表格。on_delete = models.CASCADE是一個屬性, 若主鍵數據被刪除時,此數據也被刪除。其他常設置的操作如下

  • models.PEOTECT:禁止刪除,並產生一個Excption(ProtectedError)
  • models.SET_NULL:把外鍵設置為null,但是在規划時此字段要設置為可接受null
  • models.SET_DEFAULT:把外鍵設置為默認值,但是在規划時此字段要設置默認值
  • models.DO_NOTHING:什么事都不做,就是放着這兒。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM