我做了一个查询过滤器,返回的结果是元组形式。我希望它在列表中。
project_work = Project.objects.filter(title = topic).values()
lip = []
for con in project_work:
lip.append(con)
这是输出:
[{'id':24,'title':'基于移动设备的遇险呼叫管理系统 对于大专院校的安全部门”,“ reg_num_id”: '2014/15634','主管':'Mr. Jeff','platform':'MA','year': '2018'}]
但是我想要一个这样的列表:
[用于安全性的基于移动电话的遇险呼叫管理系统 大专院校”,'2014/15634'.....]
答案 0 :(得分:0)
在这种情况下,您应该使用.values_list(..)
而不是 :.values(..)
project_work = Project.objects.filter(title = topic).values_list()
这将返回一个元组列表,因为您的过滤器可以(至少理论上可以)返回 no 或 multiple 行,因此我们使用列表。
如果要将元组转换为列表,可以对它们执行map
ping:
project_work = list(map(list, Project.objects.filter(title = topic).values_list()))
所以这会给你类似的东西
[
['A mobile-based distress calls management system for security departments in tertiary institutions', '2014/15634',....]
]
如果您知道只有一个这样的元素,则可以改用.get(..)
:
project_work = list(Project.objects.values_list().get(title=topic))
这将产生类似的内容:
['A mobile-based distress calls management system for security departments in tertiary institutions', '2014/15634',....]
请注意,如果您未指定值的顺序(作为values_list
的参数,则它将选择Django代表字段的顺序,这可能会很混乱。
答案 1 :(得分:0)
写:
for con in project_work:
lip.append(list(con.values()))