1. 程式人生 > 程式設計 >Django使用list對單個或者多個欄位求values值例項

Django使用list對單個或者多個欄位求values值例項

開發環境:Ubuntu16.04+Django 1.11.9+Python2.7

使用list對values進行求值:

單個欄位的輸出結果:

price_info=list(Book.objects.filter(auth_id='Yu').values('book_price'))
print price_info
[{'book_price': 26},{'book_price': 28},{'book_price': 27}]

輸出為列表裡面包含字典 這樣是因為這個表裡有多條符合auth_id='Yu'的值.

多個欄位的輸出結果:

也使用list可以將符合條件的多個欄位同時提取出來

entry_list = list(Selleraccount.objects.filter(status=1).values('number','id','dealer'))

[{'number': u'1524713362','id': 8,'dealer': 'yw1234'},{'number': u'1524792376','id': 9,'dealer': 'yw1234'}]

值得注意的點:

這裡需要注意的是,values中的欄位資訊需要使用單引號進行包裹

如果只有一個符合條件的值,就是一個列表裡面有一個字典.如果多個符合條件的值則是多個字典放在列表中

補充知識:Django獲取多個複選框的值,並插入對應表底下

1、實現的功能類似於,多個複選框,後面還有一個備註,之後要把複選框的值和備註一一對應插入資料庫表中,主要提供一個思路,程式碼不全。

2、首先,html頁面先設計好,多個複選框還有一個個備註,程式碼如下:

<input type="checkbox" name="user_name" value="">&nbsp;傻子
<input type="input" name="remark" size="100" placeholder="備註">
<input type="checkbox" name="user_name" value="">&nbsp;瘋子
<input type="input" name="remark" size="100" placeholder="備註">
<input type="checkbox" name="user_name" value="">&nbsp;狗子
<input type="input" name="remark" size="100" placeholder="備註">

3、接下來,看下View層是怎麼實現的:

(1)html底下的複選框的name和備註的name都是一樣的,在View底下可以使用下面程式碼來獲取複選框和備註的列表:

request.POST.getlist('user_name')

(2)接下來就是對應各個複選框的備註,生成所需要的資料,一一對應插入資料庫,這裡就附上相對應的程式碼了:

user_name_list = request.POST.getlist('user_name')
remark_list = request.POST.getlist('remark')
 
for remark remark_list:
 user_name = user_name_list[remark_list.index(remark)]
 user_info_dict = {'user_id': user_id,'user_name':user_name,'remark': remark,'create_uid': create_uid,'create_time': create_time}
 UserInfo.objects.create(**user_info_dict)

以上這篇Django使用list對單個或者多個欄位求values值例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。