我目前有一个带有“标题”和“摘要”字段的帖子模型。我正在检索所有帖子并将它们作为 JSON 作为 RESTful API 接口的一部分返回。
这是基本方法
from django.core import serializers
def list_posts(request):
posts = Post.objects.filter(owner=authenticated_user)
serialized = serializers.serialize("json", posts, fields=('title', 'summary'))
return HttpResponse(serialized, mimetype='application/json')
当我访问相应的路线时,我会收到以下回复。
当前响应
[{"pk": 4, "model": "api.post", "fields": {"summary": "Testing", "title": "My Test"}}, {"pk": 5, "model": "api.post", "fields": {"summary": "testing again", "title": "Another test"}}]
这在技术上包含我的客户端构建模型所需的所有信息(我正在使用 Backbone 并且可以使用 collection.parse 来构建我需要的东西,但服务器端应该负责很好地构建响应)。对此我感到困扰的是,它看起来不像我习惯于在信誉良好的 API 中看到的标准 API 响应。我认为像下面这样的 JSON 响应会更“标准”。
期望的反应
[{'summary': 'Testing', 'id': 4, 'title': 'My test'}, {'summary': 'My Test', 'id':5, 'title': 'Another test'}]
serialize 的输出似乎不太适合以 JSON 格式返回模型实例集合作为 API 调用的响应,这似乎是一种相当普遍的需求。我想将字段信息与 id (或 pk,如果必须称为 pk)一起返回。