2017-11-10 15 views
0

Djangoのクラスベースのビューを学習しています。 私はたとえば、クラスビュークラスベースのビューから作成されたインスタンスを作成する方法

から作成したインスタンス何を理解していない。この要求と応答・プロセス中に

from django.http import HttpResponse 
from django.views import View 

# views.py 
class MyView(View): 
    def get(self, request): 
     # <view logic> 
     return HttpResponse('result') 
# urls.py 
from django.conf.urls import url 
from myapp.views import MyView 

urlpatterns = [ 
    url(r'^about/$', MyView.as_view()), 
] 

クラスのMYVIEW "のインスタンスは何ですか?あなたの質問は非常に明確ではないが

答えて

1

、私はあなたが求めているものを手に入れることを考える:

def url(regex, view, kwargs=None, name=None): 
     if isinstance(view, (list, tuple)): 
      # For include(...) processing. 
      urlconf_module, app_name, namespace = view 
      return RegexURLResolver(
       regex, urlconf_module, kwargs, 
       app_name=app_name, namespace=namespace 
     ) 
     ... 

そして:

url()メソッドのソースコードを見てみましょうas_view()メソッドドキュメントを参照してください。

呼び出し可能なビューを返します。 tは、要求を受け取り、応答を返します:

response = MyView.as_view()(request) 

返されるビューはview_classとview_initkwargs属性があります。
要求/応答サイクル中にビューが呼び出されると、HttpRequestがビューの要求属性に割り当てられます。リクエスト・オブジェクトはurl()メソッドに渡されるときにurl方法で渡しているのでので

あなたはに指示を与えているMyView.as_view()引数はMyViewクラスをインスタンス化します。

+0

私はそれを取得し、要求インスタンスを受け取り、インスタンスを返します。 –

関連する問題