Django - 从模型中的所有对象中获取第一个属性

Posted

技术标签:

【中文标题】Django - 从模型中的所有对象中获取第一个属性【英文标题】:Django - Get the first attribute from all objects in a Model 【发布时间】:2014-05-13 20:49:31 【问题描述】:

我正在尝试从模型中的所有对象中获取一个属性的内容列表。

目前,我正在这样做:

titles_list = []
for item in  A.objects.all(): 
   titles_list.append(item.title)

print titles_list

有没有更有趣的基于内存/时间经济的解决方案?

【问题讨论】:

【参考方案1】:

同样可以使用values_list()和flat=True在一行中实现:

print A.objects.values_list('title', flat=True)

【讨论】:

+1 。顺便说一句,这将返回 ValuesListQuerySet 对象,这在大多数情况下都很好。但是如果你需要一个 python 对象列表,只需将其转换为列表类型list()。另外,.all() 在这里是多余的。 编辑删除了多余的all() 谢谢,太完美了!

以上是关于Django - 从模型中的所有对象中获取第一个属性的主要内容,如果未能解决你的问题,请参考以下文章

从 Django QuerySet 中获取所有相关的多对多对象

如何从中间件中的 Django 请求对象获取视图中使用的模型名称?

获取所有相关的 Django 模型对象

Django ORM:如何根据所有记录中的列获取唯一记录(需要模型对象而不是特定值对象)

Django:在ManyToManyField中获取属于模型对象的第一个项目

Django - 如何从多个模型中获取所需的数据