django - 从 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 语句。
任何帮助或建议?
解决方案
您可以使用 values_list 并将生成的查询集转换为列表。如果汽车,备件,卡车,摩托车是您模型的名称字段,请这样做...
my_list = list(Post_Sub_Category.objects.values_list('name'), flat=True)
我相信我的回答也应该适用于您编辑的问题。
if 'car' in list(ddd):
推荐阅读
- c# - 在 C# 中使用 EF 进行查询中的多个 Where 子句
- bash - bash:等待进程替换子shell完成
- reactjs - 是否可以在 Redux Form 的辅助函数中分配 initialValues?
- reactjs - 如何在本地运行 react-beautiful-dnd 示例?
- python - 熊猫:功能转变:“模棱两可的真值”
- python - 如何使用数据框将这些嵌套的 for 循环压缩为 python 中的列表理解?
- r - 在R中将表与一些重叠的行名组合起来
- python - 使用 elasticsearch_dsl 将 json 转换为 python 类
- ios - 主细节项目 - 从细节中删除主单元格
- css - Prettier 不适用于 CSS