【问题标题】:Converting only one entry of django model object to json仅将 django 模型对象的一项转换为 json
【发布时间】:2012-07-29 21:50:13
【问题描述】:

我有一个带有 3 个字段的 模型 Y。在这个模型 Y 中,我有 5 个条目。

我知道我可以使用:

from django.core import serializers

def aMethodThatReturnsJson():
    return HttpResponse(serializers.serialize("json", Y.objects.all()))

这会返回正确的 json 响应。

但是当我将方法更改为仅从模型返回 1 行时,如下所示,我得到 Model Y is not iterable 错误:

def returnOnlyOneRow():
    return HttpResponse(serializers.serialize("json", Y.objects.get(pk=1)))

为什么这不返回正确的 json 对象?正确的做法是什么?

谢谢。

【问题讨论】:

标签: django json django-models


【解决方案1】:

方法如下:

from django.core import serializers

def return_only_one_row():
    return HttpResponse(serializers.serialize("json", Y.objects.filter(pk=1)))

使用 filter() 而不是 get() 会返回正确的 JSON 响应。

另一种方法是使用 Python 列表。您可以将查询包装在 [ ] 中,以将结果响应转换为列表,然后将其序列化为 JSON。示例如下:

def return_only_one_row():
    return HttpResponse(serializers.serialize("json", [Y.objects.get(pk=1)]))

【讨论】:

  • 很好的答案,正在寻找一种方法来仅序列化一个返回的对象。这解决了它。
猜你喜欢
  • 2022-10-22
  • 1970-01-01
  • 1970-01-01
  • 2018-11-21
  • 2021-10-30
  • 2011-09-29
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多