gpt4 book ai didi

Django:序列化查询集并包含一对多关系子项

转载 作者:行者123 更新时间:2023-12-01 10:03:03 25 4
gpt4 key购买 nike

我想序列化与另一个模型具有一对多关系的对象的查询集。我想在我的 json 输出中包含相关对象。

例子:

class Book(models.Model):
title = models.CharField()
author = models.ForeignKey('Author')

class Author(models.Model):
name = models.CharField()

view.py:

serializers.serialize('json', Author.objects.all()) #does not include the book objects

我很确定有一个简单的解决方案,但到目前为止我无法弄清楚如何去做。感谢您的帮助!

最佳答案

您不能从默认的 django 序列化程序中执行此操作,因为 Author 模型没有 books 字段。您可以通过创建自己的序列化程序或手动构建数据并将其传递给 simplejson.dumps() 来实现它

更新

例如:

class Author(models.Model):
...
def get_json(self):
return {
'id': self.id,
'name': self.name,
'books': [{'id': b.id, 'title': b.title} for b in self.book_set.all()] }

from django.utils import simplejson
simplejson.dumps([a.get_json() for a in Author.objects.all()])

关于Django:序列化查询集并包含一对多关系子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14051900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com