我想将重定向命令放入函数内,然后在 Django 视图中调用该函数。谁能告诉我为什么我下面的代码没有重定向?
此重定向有效:
views.py
from django.shortcuts import redirect
from django.http import HttpResponse
def my_view(request):
return redirect("https://stackoverflow.com")
return HttpResponse("<p>redirection did not work</p>")
此重定向不起作用:
views.py
from django.shortcuts import redirect
from django.http import HttpResponse
# define subfunction
def test():
return redirect("https://stackoverflow.com")
def my_view(request):
test()
return HttpResponse("<p>redirection did not work</p>")
在第二个示例中,您正在调用
test()
函数,该函数执行重定向,但您没有对该函数调用的结果执行任何操作。为了确保重定向有效,您需要 test()
的结果,然后从 my_view()
返回该结果。如下图:
def my_view(request):
# Call the subfunction and return its result
return test()