Djangoの .as_view()メソッド

.as_view() は Django ビュークラスをビュー関数として扱えるようにするためのメソッドです。通常、Djangoビューは関数で表現されますが、クラスベースのビュー(CBV)を使用すると、クラス内のメソッドがHTTPメソッド(GET、POSTなど)に対応する形で処理を行えます。

views.ImpressionListImpressionList というクラスベースのビューを指しています。しかし、URLパターンには通常、関数ベースのビューを指定します。そのため、.as_view() を使ってクラスベースのビューを関数ベースのビューとして扱えるようにします。

例えば、次のようになります:

python
from django.urls import path
from . import views

urlpatterns = [
    path('impression/<int:book_id>/', views.ImpressionList.as_view(), name='impression_list'),
]

このようにして、クラスベースのビューをURLパターンに登録することができます。Djangoは内部で .as_view() を使用して、URLパターンとして登録されたときに適切なメソッド(getpostなど)を呼び出します。

未分類

Posted by ぼっち