我有这样的观点:
def myview(request):
print "A"
some_function()
return HttpResponse("This should not appear")
def some_function():
return render_to_response("templ.html", {}, context_instance=RequestContext(request))
这里,函数渲染模板,如果我调用这样的函数:
return some_function()
但它总是希望函数返回,但我希望函数只在特定时间返回。我可以在视图中使用一些逻辑是否返回,但我要求可以在视图中执行所有操作,以便我可以简单地调用该函数?
答案 0 :(得分:2)
您可以从函数中呈现回复,但您需要的是return some_function()
而不是some_function()
,
在你的情况下,some_function()会执行,但返回值不会作为视图myview()
的返回值传递
因此执行流程继续并到达return HttpResponse("This should not appear")
,
这就是你在视图中得到的回应。
如果您单独some_function()
(并且没有return
),那么您的视图将返回而没有响应(myview()
是一个不返回任何内容的函数),
和Django会抱怨。
如果您对被调用的函数使用return
,则可以使用逻辑来控制课程流程。 :
def my_view(request):
if request['x'] == 'a':
return function_a()
elif request['x'] == 'b':
return function_b()
return some_other_response()
只需让function_x()
返回有效回复。