當前位置:成語大全網 - 書法字典 - Django模板字典排序

Django模板字典排序

Django的get和filter方法是django模型中常用的方法,所以了解它們之間的區別非常重要。

為了說明它們之間的區別,定義了兩個模型。

班級學生(模特。型號):

名稱=型號。CharField ('name ',max_length=20,default= ' ')

年齡=模特。CharField ('age ',max_length=20,default= ' ')

課堂用書(模型。型號):

學生=模特。外鍵(學生)

首先,我們來談談django的get方法:

1django的get方法是從數據庫中獲取壹個匹配結果,返回壹個對象。如果記錄不存在,它將報告壹個錯誤。

例如,如果我的數據庫中有壹條記錄,並且該記錄的名稱的值為“python”,我將使用student = student . objects . get(name = '法老Python ')。

返回壹個記錄對象,可以通過student查看。__詞典_ _。它返回壹個字典{'key': valeus},其中key是字段的名稱,values是值的內容。

如果我使用get方法查詢數據庫中不存在的記錄,程序會報告錯誤。

比如:student = student . objects . get(name = '老王'),可以自己運行。

2如果使用django的get獲取相關表的數據,如果key表中有兩條以上的數據,就會得到錯誤。

例如,在我的學生表中有壹條記錄:

身份證姓名年齡

1 python 24

書臺:

id學生id

1 1

2 1

我使用

student = student . objects . get(name = ' python ')

book = Book.objects.get(學生)

它還會報告壹個錯誤,因為book表中有2條記錄與student表匹配。

2.再來說說django濾鏡:

1django的filter方法從數據庫中獲取匹配結果,並返回對象列表。如果記錄不存在,它將返回[]。

例如,如果我的數據庫中有壹條記錄,並且該記錄的名稱的值是python,我將使用student = student . objects . filter(name = '法老Python ')。

它返回的student是壹個對象列表,可以看到student[0]的結果和上面get方法返回的student是壹樣的。