这是 View 函数:
def bar(request):
...
record = get_record_from_model(model, **kwargs)
...
return JsonResponse(data_to_response)
下面是 View 函数中使用的函数:
def get_record_from_model(model, **kwargs):
try:
return model.objects.get(**kwargs)
except model.DoesNotExist:
error_data = copy.copy(settings.ERROR["NOT_EXIST_ERR"])
return JsonResponse(error_data)
发生异常时,可以在get_record_from_model函数中返回JsonResponse(error_data)
给客户端吗?
类似于 raise Http404
最佳答案
简短的回答是,您不能直接在那里执行此操作,因为调用函数仍然必须对 get_record_for_model
的返回值执行某些操作。也就是说,我建议您执行如下操作,将数据以及找到/未找到的 bool 值发送回调用函数:
def get_record_from_model(model, **kwargs):
try:
return model.objects.get(**kwargs), True
except model.DoesNotExist:
error_data = copy.copy(settings.ERROR["NOT_EXIST_ERR"])
return error_data, False
...
def bar(request):
...
data, found = get_record_from_model(model, **kwargs)
if not found:
return JsonResponse(data, status=404)
...
return JsonResponse(response_data)
关于python - 我可以在 View 函数内的函数中返回响应吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41237393/