What the difference between using Django redirect and HttpResponseRedirect?
There is a difference between the two:
In the case of HttpResponseRedirect
the first argument can only be a url
.
redirect
which will ultimately return a HttpResponseRedirect
can accept a model
, view
, or url
as it's "to" argument. So it is a little more flexible in what it can "redirect" to.
I also like how redirect
is shorter. So I'd use redirect
over HttpResponseRedirect
.
Both are fine to use though.
From documentation -
redirect(to[, permanent=False], *args, **kwargs)
Returns anHttpResponseRedirect
to the appropriate URL for the arguments passed.
from the definition its the same. Thats what shortcuts are for. Both are one and the same.
shortcuts generally are written one level above the actual API's. So redirect
encapsulates HttpResponseRedirect
and HttpResponsePermanentRedirect
with the arg permanent=False
.
There is no major downside to using HttpResponseRedirect
over redirect
. Hope this clears it.