【问题标题】:Django serializing Queryset with related entity fieldsDjango用相关实体字段序列化查询集
【发布时间】:2013-06-10 20:35:58
【问题描述】:

我正在尝试加入 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(serializers.serialize('json', result),mimetype="application/json")

现在我只得到一个包含 Foo 字段的 json,而我也想得到 Bar 的字段,理想情况下,返回的 JSON 将包含来自两个实体的特定字段:

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

即使在result.values('...') 下,我也没有得到任何 Bar 的字段
我在这里错过了什么?

【问题讨论】:

    标签: python django json


    【解决方案1】:

    据我所知,django 内置的序列化器不能与模型相关的字段一起工作。看看:

    另见:

    希望对您有所帮助。

    【讨论】:

    • 我会试试 Fullserializers,看看它是否能解决我的问题,如果它默认忽略 select_related & extra,这不是很直观
    • @Asaf 你试过序列化器了吗? :) 我应该删除答案还是您可以将其标记为已接受以解决该主题?谢谢。
    猜你喜欢
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 2020-07-31
    • 2016-09-17
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多