我知道这个问题可能已经被提出或非常明显,但是我找不到任何东西。
假设我们在views.py
中有此方法:
def my_api_view(request):
if request.method == "POST":
return HttpResponse(other_function())
else:
return HttpResponse("{UERR:%s}" % {UERR_POST_REQUEST_EXPECTED})
其中other_function()
是Django应用之外的另一个目录中另一个文件中的函数:
def other_function():
a = function1()
b = function2()
return function3(a,b)
问题:如果other_function()
,function1()
,function2()
或function3(a,b)
出了问题,我们如何使我们的视图返回HttpResponse有错误吗?例如,如果function1()
访问不可用的资源。
答案 0 :(得分:0)
有错误的HttpResponse
通常只是带有400状态代码的响应(表明客户端请求有错误,而不是您的服务器)
def my_api_view(request):
if request.method == "POST":
return HttpResponse(other_function())
else:
return HttpResponse("{UERR:%s}" % {UERR_POST_REQUEST_EXPECTED}, status=400)
如果您使用rest框架,则约定是返回rest_framework.response.Response
。
from rest_framework.response import Response
from rest_framework import status
def my_api_view(request):
if request.method == "POST":
return Response(other_function())
else:
return Response("{UERR:%s}" % {UERR_POST_REQUEST_EXPECTED}, status=status.HTTP_400_BAD_REQUEST)