从Django中的查询集对象获取值列表

时间:2018-10-27 04:20:28

标签: django

我在模型上设置的查询具有以下对象结果:

ddd = Post_Sub_Category.objects.filter(category_name__category_name__iexact=dd).values_list('sub_category_name', flat=True)

我获得的查询集:

<QuerySet ['car', 'spare parts', 'truck', 'motor cycle']>

然后尝试:

print(ddd.values('sub_category_name'))

我获得了以下结果:

<QuerySet [<Post_Sub_Category: car>, <Post_Sub_Category: spare parts>, <Post_Sub_Category: truck>, <Post_Sub_Category: motor cycle>]

如何仅访问值并以字符串形式列出它们:['car','spare parts','truck','motorcycle']。

第一个查询集似乎给了我想要的东西。但是,当我使用以下if语句时。它不会执行:

if 'car' in ddd:
 #  do some thing 

如您所见,“汽车”应该在列表中。因此,我无法理解为什么if语句尚未执行。

有什么帮助或建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用values_list并将结果查询集转换为list。如果汽车,零件,卡车,摩托车是模型的名称字段,请按照以下步骤操作...

my_list = list(Post_Sub_Category.objects.values_list('name'), flat=True)

我相信我的回答也应适用于您编辑的问题。

if 'car' in list(ddd):