You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在函数内调用Django redirect失效,求原因及解决方法

Django重定向函数调用失效的原因及修复

问题原因

你的test()函数已经正确生成了重定向响应对象,但在视图my_view中,只是调用了test()却没有将它的返回值返回给Django。Django视图必须返回HttpResponse或其子类(比如redirect返回的HttpResponseRedirect)才能让响应生效,你当前直接跳过了test()的返回结果,转而返回了普通的HttpResponse,所以重定向逻辑没触发。

修复后的代码

只需要在视图中返回test()函数的结果即可:

from django.shortcuts import redirect
from django.http import HttpResponse

def test():
    return redirect("https://stackoverflow.com")

def my_view(request):
    # 返回test生成的重定向响应
    return test()
    # 此句不会执行,因为上方已经return
    return HttpResponse("<p>redirection did not work</p>")

扩展:需要request对象的情况

如果后续test函数需要依赖请求对象做逻辑处理,记得把request传进去:

def test(request):
    # 这里可以使用request做自定义逻辑
    return redirect("https://stackoverflow.com")

def my_view(request):
    return test(request)

内容的提问来源于stack exchange,提问作者Staehlo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 12:15:19