Py学习  »  Django

在django中无法将对象列表序列化为json

Forumpy • 5 年前 • 298 次点击  

我正试图将一些关于用户的数据作为json传递,并且由于user对象具有多对多关系,将用户序列化为json似乎只包括m-n对象的主键。 (例如,每个用户都有兴趣爱好,但是在json中,它只拥有兴趣爱好的pk)

无论如何,我试图构造一个架构来解决这个问题:

[[{user}, [hobbies]], [{user}, [hobbies]],...] 

但是每当我尝试序列化这个(在python中,它基本上是一个包含一个对象和另一个数组的数组),我就会得到一个错误:

'list' object has no attribute '_meta'

为什么会发生这样的事情,我该如何解决呢?

编辑: 这是密码:

for u in allUsers:
    if searchedHobby in u.hobbies.all():
        user = [u]
        userHobbies = []

        for hobby in u.hobbies.all():
            userHobbies.append(hobby.name)

        user.append(userHobbies)
        response.append(user)


data = serializers.serialize('json', response)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43413
 
298 次点击  
文章 [ 1 ]  |  最新文章 5 年前
andreihondrari
Reply   •   1 楼
andreihondrari    6 年前

如图所示 django github repository 这个 serialize 方法需要QuerySet。

你能做的就是 json.dumps(response) 把它放回 HttpResponse .