72

一般用哪个好?

写作有什么好处:

return redirect(my_url)

超过:

return HttpResponseRedirect(my_url)

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

4

2 回答 2

106

两者有区别:

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

redirect最终将返回 aHttpResponseRedirect可以接受 a model, view, 或url作为“to”参数。因此,它可以“重定向”到的内容更加灵活。

我也喜欢如何redirect更短。所以我会使用redirectover HttpResponseRedirect

不过两者都很好用。

于 2012-11-09T09:28:40.503 回答
19

从文档 -

redirect(to[, permanent=False], *args, **kwargs)为传递的参数返回 HttpResponseRedirect适当的 URL。

从定义上看是一样的。这就是捷径的用途。两者都是一回事。

快捷方式通常写在实际 API 的上一层。所以redirect封装HttpResponseRedirectHttpResponsePermanentRedirect使用 arg permanent=False

HttpResponseRedirect使用over没有主要的缺点redirect。希望这可以清除它。

于 2012-11-09T08:09:13.927 回答