如何序列化为json格式化在Django中使用'extra'语句的查询集?

时间:2010-08-13 15:29:48

标签: django django-models

我想序列化一个包含额外语句的QuerySet:

region_list = Region.objects.extra(select={ 'selected': 'case when id = %s then 1 else 0 end' % (new_region.id)}).all()

我使用下面的语句来序列化

return HttpResponse(serializers.serialize('json', region_list), mimetype='application/json')

但是当我在浏览器中获得json结果时,只显示Region模型的字段, selected 字段消失。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

一个轻微 longwinded解决方案是通过django-piston的JSONEmitter类将对象转储到JSON。当您使用活塞注册Region模型时,您可以说明要包含哪些字段,并在那里提及'selected',然后使用您的注释来确保活塞处理程序中使用的查询集包含您想要的所有信息。

或者看看活塞是如何做到的,如果你不想要所有的活塞,只需模仿你所做的那些。