Django中使用values_list()获取整数类型列表的问题咨询
解决方法
你当前的代码存在两个问题:
- 无参数调用
values_list()会返回查询结果所有字段组成的元组,外层套list()后得到的是嵌套元组的二维结构,并非你需要的纯整数一维列表 - 如果执行操作时仍提示对象是QuerySet,说明你没有实际完成列表转换就执行了切片等操作
场景1:提取单个周数字段的所有值组成整数列表
如果你需要获取某一天(比如monday)所有匹配记录的字段值,调用values_list()时传入字段名+flat=True参数即可,直接转换为普通列表:
# 以提取monday字段为例,可替换为你需要的其他字段名 number = list(Week.objects.filter(user=request.user).values_list('monday', flat=True))
此时number就是纯整数组成的一维列表,执行number[1:]等切片操作完全正常。
场景2:提取单条Week记录的周一到周日值组成整数列表
如果你需要的是单条记录里7天的数值集合,先取到单条记录后手动拼接列表即可:
# 取匹配到的第一条Week记录,你也可以根据自己的筛选条件取指定记录 week_obj = Week.objects.filter(user=request.user).first() if week_obj: number = [ week_obj.monday, week_obj.tuesday, week_obj.wednesday, week_obj.thursday, week_obj.friday, week_obj.saturday, week_obj.sunday ]
内容的提问来源于stack exchange,提问作者Pisa Ponente
相关产品推荐
相关产品推荐

