当前位置:首页 >> 脚本专栏

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值实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。