Django1.4のクラスベースビューにおけるHEADリクエストの処理について。Make組ブログスマートフォン用の表示で見るMake組ブログPython、Webサービスや製品開発、ライブラリー開発についてhirokikyが書きます2012-09-25Django1.4のクラスベースビューにおけるHEADリクエストの処理について。Djangodjango.views.generic.base.TemplateViewなどのクラスベースビューの実装を見てみると、head()メソッドが書かれていないように見える。HEADリクエストには対応してる、という話。「TemplateViewはHEAD対応していない」的なお話を聞くことがあるから書いておく。charset=utf-8対応してますやん。こんなかんじのを動かしてる。**kwargs)https://github.com/django/django/blob/1.4/django/views/generic/base.py#L44こうなってる。getがあって、headがないクラスの場合にはheadにgetを設定してるこれでheadが無いときでもレスポンスを返してくれる。そんで多分どっかのレイヤで「HEADの場合はレスポンスのヘッダだけ返す」ってなってくれてるんだと思う。その「どっかのレイヤ」ってどこ?というのはまだ分かってないから読んでいく。updated=())https://github.com/django/django/blob/1.3/django/views/generic/base.py#L45上記のように。場合はうまいこと実装してやるっぽい。偏った言語信者の垂れ流し1.3については上記の記事とソースコード見ただけで、検証はしてない。他のメソッドのときも対応できんじゃねじゃぁheadだけじゃなくてpostとかでもいける気がしてしまう。実際TemplateViewはPOSTメソッドでアクセスすると403が返ってくる。それ自体は簡単だと思うけど、リクエストパラメーターが渡ってくる方法が違うから、それを抽象化する手段が必要だね。