首页 > 解决方案 > 从 Django 中提取值在 Python 3 中

问题描述

我有一些python代码:

UnitTestCollection.objects.filter(unit__type=unit_type)

它以以下格式输出数据:

<QuerySet [<UnitTestCollection: VALUE1>, <UnitTestCollection: VALUE2>...

如何仅提取值列表,即

[VALUE1, VALUE2....]

标签: djangopython-3.xlistobjectfilter

解决方案


为什么不是简单的列表理解?

qs = UnitTestCollection.objects.filter(unit__type=unit_type)
my_values = [item.field_name for item in qs]

或者values_list()用于直接在查询集中获取每个项目的特定字段,具有惰性评估的优势:

qs = UnitTestCollection.objects.filter(unit__type=unit_type)\
                               .values_list('field_name', flat=True)

推荐阅读