Django将Queryset与相关实体字段序列化 [英] Django serializing Queryset with related entity fields

查看:335
本文介绍了Django将Queryset与相关实体字段序列化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试加入2个实体,从中获取特定的字段,并返回一个JSON。

我尝试编写以下代码:

  import datetime 
result = Foo.objects.all()
result = result.select_related('bar')。extra(select = {'bar_has_address':'IF(bar.has_address ='',0,1)'})
result = result.filter(time__gte = datetime.date.today())
return HttpResponse .serialize('json',result),mimetype =application / json)

m只得到一个包含Foo字段的json,而我想要获取Bar的字段,理想情况下返回的JSON将具有两个实体的特定字段:

  [$ 
'name':'lorem ipsum',// from Foo
'has_address':1,// from Bar
'address':'some地址',//从Bar
'id':1,//从Foo
},...]

甚至在 result.value下s('...')我没有得到任何酒吧的字段

我在这里缺少什么?

解决方案

据我所知,django内置的序列化程序无法与模型相关的字段工作。看看:





另见:





希望有所帮助。


I'm trying to join 2 entities, get specific fields from them, and return a JSON of that.
I tried writing the following code:

import datetime
result = Foo.objects.all()
result = result.select_related('bar').extra(select={'bar_has_address':'IF(bar.has_address = '',0,1)'})
result = result.filter(time__gte=datetime.date.today())
return HttpResponse(serializers.serialize('json', result),mimetype="application/json")

Now I'm only getting a json containing the fields of Foo, whereas I want to get Bar's fields as well, ideally the returned JSON would have specific fields from both entities:

[{
    'name': 'lorem ipsum', //from Foo
    'has_address': 1, //from Bar
    'address': 'some address', //from Bar
    'id': 1, //from Foo
},... ]

even under result.values('...') I'm not getting any of Bar's fields
What am I missing here?

解决方案

As far as I know, django built-in serializers cannot work with model related fields. Take a look at:

Also see:

Hope that helps.

这篇关于Django将Queryset与相关实体字段序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆