<user:root =“”>不是JSON可序列化的

时间:2017-04-14 11:56:08

标签: django python-2.7

我正在尝试显示一个图表,显示与每个用户相关的图书数量,并且我在shell中获得了正确的结果,但是当我渲染我的模板时,我收到以下错误:不是JSON可序列化

我的template_tag

@register.simple_tag()
def chart_data():
    users = User.objects.annotate(num_books=Count('books'))
    return json.dumps({
        'labels':[user for user in users],
        'series':[[user.num_books for user in users]]
    })

1 个答案:

答案 0 :(得分:0)

您正在看到这一点,因为您正在尝试将Python class对象编码为JSON,但json模块不支持序列化Python class

只有json支持的对象是listed here

要解决此问题,请尝试序列化该用户的用户名,而不是序列化User对象。像这样更改第5行:

'labels':[user.username for user in users],