调用函数到在Python(Django的)的其他功能
问题描述:
我试图调用一个函数到Django的功能,但我不断收到:调用函数到在Python(Django的)的其他功能
The view app.views.function1 didn't return an HttpResponse object. It returned None instead.
我的看法是:
def function1(request):
[some api calls]
#Once this process is done I want to call my second function
function2()
,然后我有
def function2(request):
你如何调用其他功能在Django/Python的容易
ps.s.这些函数可能只是一个,我只是想分割它们让我的代码更具可读性,并且有一个函数只能做一件事。
答
错误是相当清楚的:
视图app.views.function1没有返回HttpResponse对象。它返回None而不是 。
您需要返回HttpResponse
对象完成function1
的时候,所以如果function2
是你的最后一个函数,它应该返回HttpResponse
对象,你应该返回函数的结果,以及:
def function1(request):
[some api calls]
#Once this process is done I want to call my second function
return function2(request)
def function2(request):
# some hard work
return HttpResponse(...)
答
通常,当我有一个实用程序功能时,我将实用程序部分分解出来,以便多个视图可以引用相同的实用程序功能,而无需担心请求对象/上下文。
但更具体地说,您的第一个函数(function1)没有返回HttpResponse对象(如错误描述)。
你有两条路走下来:
有无FUNC2返回一个HttpResponse对象(并传递给它的请求参数也一样),然后有FUNC1返回什么FUNC2返回(HttpResponse对象)。
让func2返回任何你想要的,并让func1返回一个HTTPResponse对象。
在任何一种情况下,func1都必须返回一个HttpResponse对象。然而,就像我上面所说的,如果func 1和func 2都是有效的视图,并且包含所有的爵士乐,我会将func2中的任何内容完全排除到另一个函数上,并且同时具有func1和func2参考(一般)。