Django as_viewメソッドでgetやpost, deleteなどのキーワド引数を利用時に発生する例外の対処法

クラスベースビューを利用時に、’The method name get is not accepted as a keyword argument to <classname>’というTypeError例外が発生する事があります。

この原因はas_viewメソッドに利用不可能なキーワード引数を使っている可能性があります。

今回はこの例外の発生原因と対処法を紹介します。

as_viewメソッドのキーワード引数制限

as_viewメソッドではhttp_method_namesというリスト変数に定義されている文字列をキーワード引数として使えません。

http_method_names変数はViewクラスのメンバ変数です。

http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']

例えば、次の様にキーワード引数にgetを使った場合、例外が発生します。

path('about/', TemplateView.as_view(get='hoge', template_name="about.html")),

例外

TypeError: The method name get is not accepted as a keyword argument to TemplateView().

対処法

‘get’, ‘post’, ‘put’, ‘patch’, ‘delete’, ‘head’, ‘options’, ‘trace’のどれかをas_viewメソッドのキーワード引数として使っている場合は名前を変えましょう。

スポンサーリンク
スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です