如何将使用';额外';Django的声明?

如何将使用';额外';Django的声明?,django,django-models,Django,Django Models,我想序列化包含额外语句的查询集: 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') 但当我在浏

我想序列化包含额外语句的查询集:

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结果时,只会显示区域模型的字段,所选字段将消失

如何解决这个问题?

一个稍微冗长的解决方案是通过JSONEmitter类将对象转储到JSON。当您向活塞注册区域模型时,您可以说要包括哪些字段,并在其中提到“selected”,然后使用注释确保活塞处理程序中使用的queryset包含您想要的所有信息

或者看看活塞是如何工作的,如果你不想要活塞的全部,就模仿一下你所做的