我在views目录中有两个文件,/ views / api.py和/views/pages.py
/views/api.py包含返回JSONResponses对象的方法
示例:
@api_view(['GET'])
def foos(request):
foos = get_list_or_404(Foo)
data = [{'id': foo.id,
'name': foo.name,
'description': foo.description,
'tag': foo.tag} for foo in foos]
return JsonResponse({'foos': data})
/views/pages.py将有一些方法可以访问/views/api.py中的一些方法,并将它们添加到上下文并呈现页面。
示例:
def home(request):
foos = api.foos(request)
print foos
return HttpResponse(status=200)
在行打印堆栈上,我可以看到具有正确数据的JSONResponse对象。如何访问foos中的单个值,以便创建列表或字典或为每个视图自定义的内容?
答案 0 :(得分:0)
首先考虑公共部分(nb:使用Queryset.values()
重写以提高效率):
# somewhere.py
def get_foos():
return list(Foo.objects.values('id', 'name', 'description', 'tag'))
然后从你的观点中调用它:
# views/api.py
from somewhere import get_foos
@api_view(['GET'])
def foos(request):
data = get_foos()
return JsonResponse({'foos': data})
和
# views/pages.py
from somewhere import get_foos
def home(request):
foos = get_foos()
print foos
return HttpResponse(status=200)