【发布时间】:2017-02-09 13:05:54
【问题描述】:
我遇到了一个错误, /ResultJSON/v1/results/ 处的类型错误 'tuple' 对象不可调用。
我在views.py中写了一个方法,
results = OrderedDict([
('id',x.id)
('name', x.name)
for x in Post.objects.all()
])
当我浏览这个错误时,我读到这个错误是因为没有逗号(,)。
但是我在 ('id',x.id) 和 ('name', x.name) 和最后一个 ('name', x.name) 之间添加了逗号,我得到一个错误没有为项目。
所以,我不明白为什么会发生这个错误。我该如何解决?
在views.py中,我写了
import json
from collections import OrderedDict
from django.http import HttpResponse
from accounts.models import Post
def render_json_response(request, data, status=None):
json_str = json.dumps(data, ensure_ascii=False, indent=2)
callback = request.GET.get('callback')
if not callback:
callback = request.POST.get('callback')
if callback:
json_str = "%s(%s)" % (callback, json_str)
response = HttpResponse(json_str, content_type='application/javascript; charset=UTF-8', status=status)
else:
response = HttpResponse(json_str, content_type='application/json; charset=UTF-8', status=status)
return response
def UserResult(request):
results = OrderedDict([
('id',x.id)
('name', x.name)
for x in Post.objects.all()
])
data = OrderedDict([ ('results', results) ])
return render_json_response(request, data)
【问题讨论】:
-
你想在这里实现什么?字典只能保存 唯一 键,您不能生成多个
id和name键并使其正常工作。 -
您是否正在尝试生成一个字典列表?