[英]Python/Django QuerySet to list of dicts?
这是我的代码:
obj = Object1.objects.get(pk=1)
other_objs = ob1.other_objs.all()
other_objs是Object1对象上的ManyToManyField。
当我执行此代码时:
print other_objs[0]
我没有得到other_obj(应该是字典),我得到了一个基于other_obj类中__unicode__方法的字符串。
如何获取other_obj字典而不是unicode字符串?
other_objs[0]
将是查询的第一个元素,而不是dict或字符串,而是django模型对象,您可以访问other_objs[0].myattr1
类的属性,如果要使用dict,则可以使用objects.values_list
来请求特定的属性objects.values_list
,然后objects.values_list
创建一个字典,例如
attrs = ['id', 'attr1']
values = Object1.objects.values_list(attrs)[0]
obj_dict = dict(zip(attrs, values))
或者您可以使用Django序列化来输出dict或json等,但是我认为您只需要一个对象,原始查询就足够了。
当您执行.all()
,您将获得与Object1
对象相关的对象的queryset
(以list
)。
因此,当您执行other_objs[0]
,您将获得第一个相关对象。 然后,当您打印它时,它会调用其__unicode__
方法来实际打印该对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.