Django模型定義參考

字段

對字段名稱的限制

  • 字段名不能是Python的保留字,否則會導致語法錯誤
  • 字段名不能有多個連續下劃線,否則影響ORM查詢操作

Django模型字段類

字段類說明
AutoField自增ID字段
BigIntegerField64位有符號整數
BinaryField存儲二進制數據的字段,對應Python的bytes類型
BooleanField存儲True或False
CharField長度較小的字符串
DateField存儲日期,有auto_now和auto_now_add屬性
DateTimeField存儲日期和日期,兩個附加屬性同上
DecimalField存儲固定精度小數,有max_digits(有效位數)和decimal_places(小數點后面)兩個必要的參數
DurationField存儲時間跨度
EmailField與CharField相同,可以用EmailValidator驗證
FileField文件上傳字段
FloatField存儲浮點數
ImageField其他同FileFiled,要驗證上傳的是不是有效圖像
IntegerField存儲32位有符號整數。
GenericIPAddressField存儲IPv4或IPv6地址
NullBooleanField存儲True、False或null值
PositiveIntegerField存儲無符號整數(只能存儲正數)
SlugField存儲slug(簡短標注)
SmallIntegerField存儲16位有符號整數
TextField存儲數據量較大的文本
TimeField存儲時間
URLField存儲URL的CharField
UUIDField存儲全局唯一標識符

字段屬性

通用字段屬性

選項說明
null數據庫中對應的字段是否允許為NULL,默認為False
blank后臺模型管理驗證數據時,是否允許為NULL,默認為False
choices設定字段的選項,各元組中的第一個值是設置在模型上的值,第二值是人類可讀的值
db_column字段對應到數據庫表中的列名,未指定時直接使用字段的名稱
db_index設置為True時將在該字段創建索引
db_tablespace為有索引的字段設置使用的表空間,默認為DEFAULT_INDEX_TABLESPACE
default字段的默認值
editable字段在后臺模型管理或ModelForm中是否顯示,默認為True
error_messages設定字段拋出異常時的默認消息的字典,其中的鍵包括null、blank、invalid、invalid_choice、unique和unique_for_date
help_text表單小組件旁邊顯示的額外的幫助文本。
primary_key將字段指定為模型的主鍵,未指定時會自動添加AutoField用于主鍵,只讀。
unique設置為True時,表中字段的值必須是唯一的
verbose_name字段在后臺模型管理顯示的名稱,未指定時使用字段的名稱

ForeignKey屬性

  1. limit_choices_to:值是一個Q對象或返回一個Q對象,用于限制后臺顯示哪些對象。
  2. related_name:用于獲取關聯對象的關聯管理器對象(反向查詢),如果不允許反向,該屬性應該被設置為'+',或者以'+'結尾。
  3. to_field:指定關聯的字段,默認關聯對象的主鍵字段。
  4. db_constraint:是否為外鍵創建約束,默認值為True。
  5. on_delete:外鍵關聯的對象被刪除時對應的動作,可取的值包括django.db.models中定義的:
    • CASCADE:級聯刪除。
    • PROTECT:拋出ProtectedError異常,阻止刪除引用的對象。
    • SET_NULL:把外鍵設置為null,當null屬性被設置為True時才能這么做。
    • SET_DEFAULT:把外鍵設置為默認值,提供了默認值才能這么做。

ManyToManyField屬性

  1. symmetrical:是否建立對稱的多對多關系。
  2. through:指定維持多對多關系的中間表的Django模型。
  3. throughfields:定義了中間模型時可以指定建立多對多關系的字段。
  4. db_table:指定維持多對多關系的中間表的表名。

模型元數據選項

選項說明
abstract設置為True時模型是抽象父類
app_label如果定義模型的應用不在INSTALLED_APPS中可以用該屬性指定
db_table模型使用的數據表名稱
db_tablespace模型使用的數據表空間
default_related_name關聯對象回指這個模型時默認使用的名稱,默認為<model_name>_set
get_latest_by模型中可排序字段的名稱。
managed設置為True時,Django在遷移中創建數據表并在執行flush管理命令時把表移除
order_with_respect_to標記對象為可排序的
ordering對象的默認排序
permissions創建對象時寫入權限表的額外權限
default_permissions默認為('add', 'change', 'delete')
unique_together設定組合在一起時必須獨一無二的字段名
index_together設定一起建立索引的多個字段名
verbose_name為對象設定人類可讀的名稱
verbose_name_plural設定對象的復數名稱

查詢參考

按字段查找可以用的條件:

  1. exact / iexact:精確匹配/忽略大小寫的精確匹配查詢
  2. contains / icontains / startswith / istartswith / endswith / iendswith:基于like的模糊查詢
  3. in:集合運算
  4. gt / gte / lt / lte:大于/大于等于/小于/小于等于關系運算
  5. range:指定范圍查詢(SQL中的between…and…
  6. year / month / day / week_day / hour / minute / second:查詢時間日期
  7. isnull:查詢空值(True)或非空值(False)
  8. search:基于全文索引的全文檢索
  9. regex / iregex:基于正則表達式的模糊匹配查詢

轉載于:https://www.cnblogs.com/virus1996/p/9370205.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389002.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389002.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389002.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

精通Quartz-入門-Job

JobDetail實例&#xff0c;并且&#xff0c;它通過job的類代碼引用這個job來執行。每次調度器執行job時&#xff0c;它會在調用job的execute(..)方法之前創建一個他的實例。這就帶來了兩個事實&#xff1a;一、job必須有一個不帶參數的構造器&#xff0c;二、在job類里定義數據…

單據打印_Excel多功能進銷存套表,自動庫存單據,查詢打印一鍵操作

Hello大家好&#xff0c;我是幫幫。今天跟大家分享一張Excel多功能進銷存管理套表&#xff0c;自動庫存&#xff0c;單據打印&#xff0c;查詢統算一鍵操作。為了讓大家能更穩定的下載模板&#xff0c;我們又開通了全新下載方式(見文章末尾)&#xff0c;以便大家可以輕松獲得免…

卡爾曼濾波濾波方程_了解卡爾曼濾波器及其方程

卡爾曼濾波濾波方程Before getting into what a Kalman filter is or what it does, let’s first do an exercise. Open the google maps application on your phone and check your device’s current location.在了解什么是卡爾曼濾波器或其功能之前&#xff0c;我們先做一個…

js中的new()到底做了些什么??

要創建 Person 的新實例&#xff0c;必須使用 new 操作符。以這種方式調用構造函數實際上會經歷以下 4個步驟&#xff1a;(1) 創建一個新對象&#xff1b;(2) 將構造函數的作用域賦給新對象&#xff08;因此 this 就指向了這個新對象&#xff09; &#xff1b;(3) 執行構造函數…

Candidate sampling:NCE loss和negative sample

在工作中用到了類似于negative sample的方法&#xff0c;才發現我其實并不了解candidate sampling。于是看了一些相關資料&#xff0c;在此簡單總結一些相關內容。 主要內容來自tensorflow的candidate_sampling和卡耐基梅隆大學一個學生寫的一份notesNotes on Noise Contrastiv…

golang key map 所有_Map的底層實現 為什么遍歷Map總是亂序的

Golang中Map的底層結構其實提到Map&#xff0c;一般想到的底層實現就是哈希表&#xff0c;哈希表的結構主要是Hashcode 數組。存儲kv時&#xff0c;首先將k通過hashcode后對數組長度取余&#xff0c;決定需要放入的數組的index當數組對應的index已有元素時&#xff0c;此時產生…

樸素貝葉斯分類器 文本分類_構建災難響應的文本分類器

樸素貝葉斯分類器 文本分類背景 (Background) Following a disaster, typically you will get millions and millions of communications, either direct or via social media, right at the time when disaster response organizations have the least capacity to filter and…

第二輪沖次會議第六次

今天早上八點我們進行了站立會議 此次站立會議我們開了30分鐘 參加會議的人員&#xff1a; 黃睿麒 侯熙磊 會議內容&#xff1a;我們今天討論了如何分離界面&#xff0c;是在顯示上進行限制從而達到不同引用展現不同便簽信息&#xff0c;還是單獨開一個界面從而實現顯示不同界面…

markdown 鏈接跳轉到標題_我是如何使用 Vim 高效率寫 Markdown 的

本文僅適合于對vim有一定了解的人閱讀&#xff0c;沒有了解的人可以看看文中的視頻我使用 neovim 代替 vim &#xff0c;有些插件是 neovim 獨占&#xff0c; neovim 和 vim 的區別請自行 google系統: Manjaro(Linux)前言之前我一直使用的是 vscode 和 typora 作為 markdown 編…

nginx運用

1、nginx的 命令 start nginx 這樣&#xff0c;nginx 服務就啟動了。打開任務管理器&#xff0c;查看 nginx.exe 進程&#xff0c;有二個進程會顯示&#xff0c;占用系統資源&#xff0c;那是相當的少。然后再打開瀏覽器&#xff0c;輸入 http://127.0.0.1/ 就可以看到nginx的…

數據修復案例

/*--數據修復案例 如何在數據庫文件損壞&#xff08;日志文件完好&#xff09;情況下&#xff0c;進行恢復 --(收藏整理)--*/ --測試步驟 --1.建一個測試數據庫test create database test go use test go -…

Seaborn:Python

Seaborn is a data visualization library built on top of matplotlib and closely integrated with pandas data structures in Python. Visualization is the central part of Seaborn which helps in exploration and understanding of data.Seaborn是建立在matplotlib之上…

利用日志還原數據庫

USE masterGO-- 創建測試數據庫CREATE DATABASE db_test GO -- 對數據庫進行備份BACKUP DATABASE db_testTO DISK c:/db_test.bakWITH FORMATGO -- 創建測試表CREATE TABLE db_test.dbo.tb_test( ID int) -- 延時 1 秒鐘,再進行后面的操作(這是由于SQL Server的時間精度…

Springboot集成BeanValidation擴展一:錯誤提示信息加公共模板

Bean Validator擴展 1、需求 ? 在使用validator時&#xff0c;有個需求就是公用錯誤提示信息&#xff0c;什么意思&#xff1f; 舉個例子&#xff1a; ? NotEmpty非空判斷&#xff0c;在資源文件中我不想每個非空判斷都寫”不能為空“&#xff0c;只需要寫”###“&#xff0c…

福大軟工 · 第十次作業 - 項目測評(團隊)

寫在前面 本次作業測試報告鏈接林燊大哥第一部分 調研&#xff0c;評測 一、評測 軟件的bug&#xff0c;功能評測&#xff0c;黑箱測試 1.下載并使用&#xff0c;描述最簡單直觀的個人第一次上手體驗 IOS端 UI界面簡單明了&#xff0c;是我喜歡的極簡風格。課程模塊界面簡潔優雅…

銷貨清單數據_2020年8月數據科學閱讀清單

銷貨清單數據Note: I am not affiliated with any of the writers in this article. These are simply books and essays that I’m excited to share with you. There are no referrals or a cent going in my pocket from the authors or publishers mentioned. Reading is a…

c++運行不出結果_fastjson 不出網利用總結

點擊藍字 關注我們 聲明 本文作者:flashine 本文字數:2382 閱讀時長:20分鐘 附件/鏈接:點擊查看原文下載 聲明:請勿用作違法用途,否則后果自負 本文屬于WgpSec原創獎勵計劃,未經許可禁止轉載 前言 之前做項目在內網測到了一個fastjson反序列化漏洞,使用dnslo…

FocusBI:租房分析可視化(PowerBI網址體驗)

微信公眾號&#xff1a;FocusBI關注可了解更多的商業智能、數據倉庫、數據庫開發、爬蟲知識及滬深股市數據推送。問題或建議&#xff0c;請關注公眾號發送消息留言;如果你覺得FocusBI對你有幫助&#xff0c;歡迎轉發朋友圈或在文章末尾點贊[1] 《商業智能教程》pdf下載地址 …

米其林餐廳 鹽之花_在世界范圍內探索《米其林指南》

米其林餐廳 鹽之花Among the culinary world, there are few greater accolades for a restaurant than being awarded a Michelin star (or three!), or being listed as one of the best in the world by a reputable guide. Foodies and fine dine lovers like myself, see …

require_once的用法

require_once 語句和 require 語句完全相同&#xff0c;唯一區別是 PHP 會檢查該文件是否已經被包含過&#xff0c;如果是則不會再次包含。 參見 include_once 的文檔來理解 _once 的含義&#xff0c;并理解與沒有 _once 時候有什么不同。 有一個文件a.php,里面有一個變量$var1…