如果在函数内调用,Django 重定向将不起作用

问题描述 投票:0回答:1

我想将重定向命令放入函数内,然后在 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>")
django http-redirect
1个回答
0
投票

在第二个示例中,您正在调用

test()
函数,该函数执行重定向,但您没有对该函数调用的结果执行任何操作。为了确保重定向有效,您需要
test()
的结果,然后从
my_view()
返回该结果。如下图:

def my_view(request):
    # Call the subfunction and return its result
    return test()
© www.soinside.com 2019 - 2024. All rights reserved.