在Django 2.2中,我们可以使用filter()
来获得QuerySet
的创建对象。使用list()
,我可以获得QuerySet
的列表。
为了获得模型的实例,我可以使用函数get()
,例如MyModel.objects.all().get(name__exact="John")
。但是,get()
函数仅适用于查找单个对象。如果找到2个或更多对象,则返回异常:MultipleObjectsReturned get() returned more than one
。
由于我需要处理模型的多个对象及其属性,因此我想获取一个对象列表。可能吗?例如,我想从属性名称中带有John的所有对象创建年龄列表。
如果没有,如何从MyModel.objects.all().filter(name__exact="John")
访问返回的QuerySet的属性(例如age)?
谢谢。
答案 0 :(得分:1)
使用values
:
instances = MyModel.objects.filter(name__exact="John")
ages = instances.values('id', 'age')
您将获得包含键id
和age
的词典列表。