python-Django:将具有相关对象的QuerySet转换为JSON
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-Django:将具有相关对象的QuerySet转换为JSON,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1230字,纯文字阅读大概需要2分钟。
内容图文
![python-Django:将具有相关对象的QuerySet转换为JSON](/upload/InfoBanner/zyjiaocheng/678/d0e6c56db9d248049eee9f72c9cda60e.jpg)
假设我有两个简单的模型:
class Place(models.Model):
name = models.CharField(max_length=200)
address = models.CharField(max_length=200)
class Event(models.Model):
name = models.CharField(max_length=200)
date = models.DateField()
place = models.ForeignKey(Place)
我现在想做的是查询具有解决位置的一组事件,并将所有内容转换为字典列表,以后可以将其转换为JSON.
最终结果应如下所示:
[{
"name": "event1",
"date": "date1",
"place": {
"name": "place1",
"address": "address1",
},
},{
"name": "event2",
"date": "date2",
"place": {
"name": "place2",
"address": "address2",
},
},]
到目前为止,我尝试了ValueQuerySet和.values()方法的运气:
Event.objects.all().select_related("place").values()
但是,这将不起作用,因为.values()仅返回相关对象的ID,而不返回内容.因此,我想知道是否存在另一种内置方法来进行这种转换,或者是否必须迭代QuerySet对象并自己进行转换.
解决方法:
没有默认的方法来创建嵌套的字典,但是您可以选择相关项目的值:
# No need for select_related in this case
Event.objects.values('name', 'date', 'place__name', 'place__address')
[{
"name": "event1",
"date": "date1",
"place__name": "place1",
"place__address": "address1",
},{
"name": "event2",
"date": "date2",
"place__name": "place2",
"place__address": "address2",
}]
如果绝对必要,则可以在Python中进行一些后处理以获得所需的嵌套字典.
内容总结
以上是互联网集市为您收集整理的python-Django:将具有相关对象的QuerySet转换为JSON全部内容,希望文章能够帮你解决python-Django:将具有相关对象的QuerySet转换为JSON所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。