我在模型上设置的查询具有以下对象结果:
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语句尚未执行。
有什么帮助或建议吗?
答案 0 :(得分:1)
您可以使用values_list并将结果查询集转换为list。如果汽车,零件,卡车,摩托车是模型的名称字段,请按照以下步骤操作...
my_list = list(Post_Sub_Category.objects.values_list('name'), flat=True)
我相信我的回答也应适用于您编辑的问题。
if 'car' in list(ddd):