我正在尝试显示一个图表,显示与每个用户相关的图书数量,并且我在shell中获得了正确的结果,但是当我渲染我的模板时,我收到以下错误:不是JSON可序列化
@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]]
})
答案 0 :(得分:0)
您正在看到这一点,因为您正在尝试将Python class
对象编码为JSON,但json模块不支持序列化Python class
。
只有json支持的对象是listed here。
要解决此问题,请尝试序列化该用户的用户名,而不是序列化User
对象。像这样更改第5行:
'labels':[user.username for user in users],