调用函数到在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对象(如错误描述)。

你有两条路走下来:

  1. 有无FUNC2返回一个HttpResponse对象(并传递给它的请求参数也一样),然后有FUNC1返回什么FUNC2返回(HttpResponse对象)。

  2. 让func2返回任何你想要的,并让func1返回一个HTTPResponse对象。

在任何一种情况下,func1都必须返回一个HttpResponse对象。然而,就像我上面所说的,如果func 1和func 2都是有效的视图,并且包含所有的爵士乐,我会将func2中的任何内容完全排除到另一个函数上,并且同时具有func1和func2参考(一般)。