Django将Queryset与相关实体字段序列化 [英] Django serializing Queryset with related entity fields
本文介绍了Django将Queryset与相关实体字段序列化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试编写以下代码:
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内置的序列化程序无法与模型相关的字段工作。看看:
- DjangoFullSerializers
- 此 answer 和在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:
- DjangoFullSerializers
- this answer and suggested serializer
- relevant open ticket in django issue tracker
Also see:
- Django serialization of inherited model
- Serialize django models with reverse One-To-One fields to JSON
Hope that helps.
这篇关于Django将Queryset与相关实体字段序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文