首页 > 解决方案 > 从 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 语句。

任何帮助或建议?

标签: django

解决方案


您可以使用 values_list 并将生成的查询集转换为列表。如果汽车,备件,卡车,摩托车是您模型的名称字段,请这样做...

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

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

if 'car' in list(ddd):

推荐阅读