Django序列化器给出 'str' 对象没有 '_meta' 属性错误

3 投票
3 回答
8515 浏览
提问于 2025-04-15 11:16

我正在尝试创建一个Django视图,目的是返回一个包含最早和最新对象的JSON响应。但是不幸的是,它出现了错误,导致无法正常工作。

'str' object has no attribute '_meta'

我还有其他的序列化代码,它们都能正常工作。

以下是我的代码。

def get_calendar_limits(request):
    result =  serializers.serialize("json", Session.objects.aggregate(Max('date'), Min('date')), ensure_ascii=False)
    return HttpResponse(result, mimetype="application/javascript")

非常感谢你的帮助。

3 个回答

1

Python有一个叫“json”的模块。这个模块里面有两个很重要的功能,一个叫“dumps”,另一个叫“loads”。它们的作用分别是把数据转换成一种可以存储的格式(叫序列化),以及把这种格式的数据再转换回原来的样子(叫反序列化)。

1

当我尝试把一个不是从Django的模型派生出来的对象进行序列化时,我遇到了同样的错误。

0

看看下面的内容:

objects= Session.objects.aggregate(Max('date'), Min('date'))
print [ type[o] for o in objects ]
result =  serializers.serialize("json", objects, ensure_ascii=False)

你可以在交互式Python中试着运行上面的代码,作为一个实验。

你的对象是什么类型的?这个类型可以被序列化吗?

撰写回答