Hay,序列化程序没有返回JSON对象
make = Make.objects.filter(slug__exact=make)
models = Model.objects.filter(make=make).values('slug','name')
json_models = serializers.get_serializer("json")()
json_models.serialize(models)
return HttpResponse(json_models.getvalue())
我收到错误
'dict' object has no attribute '_meta'
有什么想法吗?
答案 0 :(得分:4)
正如其他答案提示的那样,因为.values(...)
返回一个列表而serializers
用于Querysets。但是,您仍然可以在不需要原始SimpleJSON的情况下完成此操作:
queryset = Model.objects.filter(make__slug__exact=make)
return serializers.serialize("json", queryset, fields=('slug', 'name'))
我们基本上是告诉序列化程序进行字段限制而不是让Queryset这样做。我在那里使用了一些快捷方式将查询减少到一行,但这取决于你。
答案 1 :(得分:2)
序列化程序旨在用于QuerySet
个实例。如果你有一个普通的Python结构,请使用django.utils.simplejson.dumps()
。