繁体   English   中英

Python / Django QuerySet到字典列表?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM