使用Django重定向和HttpResponseRedirect有什么区别?

时间:2012-11-09 07:50:14

标签: python django redirect

一般情况下使用哪个更好?

写作有什么好处:

return redirect(my_url)

在:

return HttpResponseRedirect(my_url)

或者它是直接别名?有什么区别吗?哪个更pythonic / django-nic?

2 个答案:

答案 0 :(得分:68)

两者之间存在差异:

HttpResponseRedirect的情况下,第一个参数只能是url

redirect最终返回HttpResponseRedirect,可以接受modelviewurl,因为它是“ “论点。因此,它可以“重定向”到它的灵活性。

我也喜欢redirect更短的方式。所以我使用redirect而不是HttpResponseRedirect

虽然两者都可以使用。

答案 1 :(得分:7)

来自文档 -

  

redirect(to[, permanent=False], *args, **kwargs)返回一个   HttpResponseRedirect到传递参数的相应URL。

从定义上来说也一样。那是什么捷径。两者都是一样的。

快捷方式通常写在实际API之上一级。因此,redirectHttpResponseRedirectHttpResponsePermanentRedirect与arg permanent=False封装在一起。

使用HttpResponseRedirect而不是redirect没有重大缺点。希望这可以解决它。