一般的にどちらを使用するのが良いですか?
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はどれですか?
2つの間に違いがあります。
HttpResponseRedirect
の場合、最初の引数はurl
のみです。
redirect
which ltimately return HttpResponseRedirect
can accept a model
、view
、or url
is as's "to"引数。したがって、「リダイレクト」できる対象が少し柔軟になります。
redirect
の方が短いのも気に入っています。したがって、redirect
よりもHttpResponseRedirect
を使用します。
どちらも使用しても問題ありません。
ドキュメントから-
redirect(to[, permanent=False], *args, **kwargs)
渡された引数の適切なURLにHttpResponseRedirect
を返します。
その定義から同じです。それがショートカットの目的です。どちらも同じです。
ショートカットは通常、実際のAPIの1レベル上に記述されます。したがって、redirect
はHttpResponseRedirect
およびHttpResponsePermanentRedirect
をpermanent=False
の引数でカプセル化します。
HttpResponseRedirect
よりもredirect
を使用することに大きな欠点はありません。これで問題が解決することを願っています。