Django:我想要一个Queryset作为列表。怎么样?

时间:2017-09-12 23:57:03

标签: python django orm django-queryset backend

我需要在Django中获取一个Queryset,并以字典列表的形式将其复制为变量。我认为这就是Querysets,我想我错了。

listA = User_Item.objects.filter(user=User.objects.get(id=1))

当我尝试使用它执行简单的算法时,给我一个错误。 我不想与数据库交互 - 我需要将Queryset复制为字典列表,因此我可以显示列表的修改版本而无需实际更改数据。我该怎么做?

(尝试获取此连接表中的条目列表,该列表应该是包含某些键值的词典的词典列表)

2 个答案:

答案 0 :(得分:1)

要从查询集创建列表,只需将其传递给列表函数list_a = list(queryset)。这将返回一个包含查询集中对象的列表。如果您希望将其作为dict,可以在将查询集传递给列表之前调用values()方法:list(queryset.values())

答案 1 :(得分:-1)

values()values_list()都会返回queryset object,这对大多数情况都应该没问题。但是如果你想要一个列表,那么就像之前的答案所述,你必须使用函数list(queryset)

将其类型化为一个列表。

对列表的查询集进行类型转换将删除仅使用查询集获得的一些性能。