Django1.1で追加されたredirect関数を使ってみる
Djangoでどこかのページにリダイレクトする時は、HttpResponseRedirectを使ってました。こんな感じ
from django.http import HttpResponseRedirect def redirect_twitter(request): return HttpResponseRedirect("http://twitter.com")
はっきり言ってHttpResponseRedirectは長過ぎる。入力するのだるい。
そんな時にDjango1.1のショートカット関数のドキュメント読んでたら、redirect関数があるらしい。
こんな感じ
from django.shortcuts import redirect def redirect_twitter(request): return redirect("http://twitter.com")
入力しやすくなってうれしいですね!
さらにモデルにget_absolute_urlメソッドを定義しておき、redirect関数の引数にURLではなくモデルオブジェクトを入れることで、get_absolute_urlのURLにリダイレクトされるらしいです。便利
from django.shortcuts import redirect class MyModel(models.Model): . . . def get_absolute_url(self): return "http://twitter.com" def redirect_twitter(request) object = MyModel.objects.get(...) return redirect(object)