如何仅输出Django QuerySet中values()返回的指定字段的实际值
Django QuerySet仅打印指定字段值的实现方法
核心调整方案
你可以使用Django ORM提供的values_list方法配合flat=True参数实现需求,该参数在仅查询单个字段时,会直接返回字段值组成的可迭代序列,去掉外层QuerySet结构与字典格式。
场景1:单次查询单条记录(对应你当前每次按id过滤的写法)
调整后的代码如下:
print(DataSheet.objects.filter(id=i).values_list('Gênero', flat=True).first())
场景2:批量查询多条记录(更高性能的写法,避免循环内多次查询数据库)
如果你是在循环中遍历多个id查询,建议改为批量查询后循环打印:
# 替换为你要查询的所有id的列表 id_list = [1,2,3,4] for genero_val in DataSheet.objects.filter(id__in=id_list).values_list('Gênero', flat=True): print(genero_val)
原输出格式说明
原代码使用values()方法会返回由字典构成的QuerySet,每个元素为{字段名: 字段值}的结构,因此输出会自带外层<QuerySet>标识和字典格式,不符合你的输出要求。
内容的提问来源于stack exchange,提问作者searcher__dm01
相关产品推荐
相关产品推荐

