Django的orm需要注意的地方

2022-06-26 10:30:12 字數 932 閱讀 4726

1. 區別

基於物件的跨表查詢相當於sql的子查詢

基於雙下劃線的跨表查詢類似於sql的聯表查詢

2. 基於物件的查詢

"""

正向查詢 按外來鍵字段

一對一,多對一,多對多都是用"."來連線

是否需要加all()

多對多的時候需要加all()

一對多和一對一都不需要加all()

外來鍵字段關聯的資料可能有多條還是單條

有多條則需要加all

沒有則不需要

書寫orm語句跟寫sql語句一致 不要想著一次性將語句書寫完成

寫一步執行看結果 再接著寫

""""""

反向查詢 按表名小寫

一對乙隻需要表名小寫

多對一和多對多可能需要:(不加_set.all()如果不出錯就不加,如果出錯就加上)

什麼時候需要加_set.all()

當結果可能有多個的時候

不需要加_set.all()

當結果只會是乙個的時候

"""

3. 基於雙下劃線的跨表查詢

正向查詢用 關聯欄位+雙下劃線

反向查詢用 表名小寫+雙下劃線

class userinfo(abstractuser):  #

需要擴充套件user,所以要繼承abstractuser

phone = models.bigintegerfield(verbose_name='

手機號', null=true, blank=true) #

該欄位可以不填

本段**中null=true是告訴資料庫字段可以為空

blank=true是告訴django admin後台管理字段可以為空

需要注意的問題

決策樹id3和c4.5的差別?各自優點?boost演算法 cart 回歸樹用平方誤差最小化準則,分類樹用基尼指數最小化準則 gbdt與隨機森林演算法的原理以及區別。優化演算法中常遇到的kkt條件?作用是?最近鄰演算法knn 分類與回歸 l1和l2函式?l1和l2正則項的比較,如何解決 l1 求導困難...

const需要注意的

1.對於函式後邊新增const後,函式成為const型別,該函式中不允許對類中成員進行修改,可以認為是在該函式中,類成為了const型別。另外要注意的是,const函式中只能呼叫const型別的函式。2.對於const型別的變數來說,只能把const的賦值給非const,不能把非const賦值給co...

constraintlayout 需要注意的事項

橫向和豎向至少都需要設定乙個約束條件,但是實際上下左右都是可以設定約束條件的。仔細觀察android studio 預設的建立專案的textview 如果上下左右都設定了約束條件就會產生邊距。劃重點 相同方向的屬性,比如說top to top 這樣的,實際上可以理解為是relativelayout中...