#convert queryset into list of dicts
#【Django】QuerySetを辞書型(dict)のlistに変換する
1,通过模型(Model)类的Manager,获取Queryset
>>> from pur.models import Document
>>> doc = Document.objects.filter(id__gte=100).all()
>>> doc
<QuerySet [<Document: Document object (100)>, <Document: Document object (101)>]>2,期待结果:
[{'id': 100, 'name': 'EMS20220707.pdf'}, {'id': 101, 'name': '三菱オンライン入会申込.pdf'}]Use the.values()method, 返回结果仍为Queryset,再用list转换一下即可。
>>> doc = Document.objects.filter(id__gte=100).values('id','name')
>>> doc
<QuerySet [{'id': 100, 'name': 'EMS20220707.pdf'}, {'id': 101, 'name': '三菱オンライン入会申込.pdf'}]>
>>> type(doc)
<class 'django.db.models.query.QuerySet'>①全项目取得
>>> doc = Document.objects.filter(id__gte=100).all()
>>> ld=list(doc.values())
>>> ld
[{'id': 100, 'type': '支払申請', 'no': 0, 'name': 'EMS20220707.pdf', 'folder': ''},
{'id': 101, 'type': '支払申請', 'no': 0, 'name': '三菱オンライン入会申込.pdf', 'folder': ''}]②指定項目取得
>>> ld=list(doc.values('id','name'))
>>> ld
[{'id': 100, 'name': 'EMS20220707.pdf'}, {'id': 101, 'name': '三菱オンライン入会申込.pdf'}]只取得值,不要key,用values_list() ,括号内可传指定转换项目。同样返回结果为Queryset,需要list转换。
>>> doc.values_list('id','name')
<QuerySet [(100, 'EMS20220707.pdf'), (101, '三菱オンライン入会申込.pdf')]>
>>> list(doc.values_list('id','name'))
[(100, 'EMS20220707.pdf'), (101, '三菱オンライン入会申込.pdf')]补充说明:参照检索对象
检索对象
要从数据库检索对象,要通过模型类的 Manager 构建一个 QuerySet。
一个 QuerySet 代表来自数据库中对象的一个集合。
它可以有 0 个,1 个或者多个 filters. Filters,可以根据给定参数缩小查询结果量。
在 SQL 的层面上, QuerySet 对应 SELECT 语句,而*filters*对应类似 WHERE 或 LIMIT 的限制子句。
你能通过模型的 Manager 获取 QuerySet。每个模型至少有一个 Manager,默认名称是 objects。直接通过模型类使用它
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。