【发布时间】:2017-10-10 13:13:03
【问题描述】:
我在视图目录中有两个文件,/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 中的单个值,以便创建列表或字典或为每个视图自定义的内容?
【问题讨论】:
-
这是错误的方法。您不应该直接从其他视图调用视图。如果您需要在主视图中访问与 api 视图中相同的数据,您应该创建一个实用函数,该函数返回一个可以从两个位置调用的 dict。
-
@DanielRoseman 你能举个例子吗?