一般情况下使用哪个更好?
https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#redirect
https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponseRedirect
写作有什么好处:
return redirect(my_url)
在:
return HttpResponseRedirect(my_url)
或者它是直接别名?有什么区别吗?哪个更pythonic / django-nic?
答案 0 :(得分:68)
两者之间存在差异:
在HttpResponseRedirect
的情况下,第一个参数只能是url
。
redirect
将最终返回HttpResponseRedirect
,可以接受model
,view
或url
,因为它是“ “论点。因此,它可以“重定向”到它的灵活性。
我也喜欢redirect
更短的方式。所以我使用redirect
而不是HttpResponseRedirect
。
虽然两者都可以使用。
答案 1 :(得分:7)
来自文档 -
redirect(to[, permanent=False], *args, **kwargs)
返回一个HttpResponseRedirect
到传递参数的相应URL。
从定义上来说也一样。那是什么捷径。两者都是一样的。
快捷方式通常写在实际API之上一级。因此,redirect
将HttpResponseRedirect
和HttpResponsePermanentRedirect
与arg permanent=False
封装在一起。
使用HttpResponseRedirect
而不是redirect
没有重大缺点。希望这可以解决它。