如何在Django模型中返回对象数组

1 投票
1 回答
11311 浏览
提问于 2025-04-17 22:52

我正在使用JavaScript(加上AngularJS和Restangular)来调用一个Django的接口,想要获取一个提案的数组。但是我好像写错了Django的语法。

我该如何在Django模型中返回一个对象数组呢?

def proposal_api(request):
    response = {}
    response['proposal_list'] = Proposal.objects.all()
    return response

上面的Django视图出现了一个属性错误:'dict'对象没有'status_code'这个属性

一旦我从上面的Django视图获取到提案的数组(里面有ID、名称、问题等等),我就会用AngularJS把这些内容展示出来。

1 个回答

7

你需要去看看关于在文档中如何写视图的内容。视图函数应该返回一个HTTP响应对象。

最简单的方法就是直接使用Django里的HttpResponse对象,像这样:

from django.core import serializers
from django.http import HttpResponse

def proposal_api(request):
    response = {}
    response['proposal_list'] = serializers.serialize("json", Proposal.objects.all())
    return HttpResponse(response, content_type="application/json")

不过,如果你是在构建一个API,我强烈建议你去了解一下TastyPie或者Django-Rest-Framework

撰写回答