明示的にリクエストメソッドを制限したい時があります。
今回は、クラスベースビューでリクエストのメソッドを制限する方法を紹介します。
リクエストのメソッドを制限する方法
Viewクラスにhttp_method_namesというクラス変数が定義されています。
http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']
通常は、http_method_namesのリストにあるリクエストを受け付け、それに該当するメソッドが実行されます。
メソッドが定義されていない場合はHTTP ERROR 405になります。
getメソッドとpostメソッドのみに制限したい場合は以下の様に書きます。
class CreateUserView(CreateView):
http_method_names = ['get', 'post']
# 以下略...
http_method_namesにないメソッドでリクエストをするとHTTP ERROR 405が返却されます。また、Warningログとして記録されます。
コメントを残す