0

メソッド (ビュー) から追加のコンテキストを使用して、クラスベースのジェネリック ビューを呼び出したいと考えています。私が得るエラーはas_view() takes exactly 1 argument (4 given). を使用してdjango-userenaいます。

これを実行するコードは次のとおりです。

return userena_views.ProfileListView.as_view(request,template_name='userena/profil.html', extra_context=projekti)

urls.py には次の行があります。

url(r'^accounts/(?P<username>[\.\w-]+)', userena_views.ProfileListView.as_view(template_name='userena/profil.html', extra_context=Projekat.objects.all), name='userena_profile_list'),

なぜこの2つは違うのですか?私は何を間違っていますか?

4

1 に答える 1

2

これは、urlの機能によるものです。kwargs を使用してパラメータを渡し、次のように URL パターンを定義できます。

url(r'^accounts/(?P<username>[\.\w-]+)', userena_views.ProfileListView.as_view(), name='userena_profile_list', kwargs={'template_name':'userena/profil.html', 'extra_context':Projekat.objects.all}),


編集

私はあなたの質問を誤解しました、ごめんなさい。次に、質問に正しく答えようとしています...コードは次のようになります。

your_callable_view = userena_views.ProfileListView.as_view()
return your_callable_view(request, template_name='userena/profil.html', extra_context=projekti)

その理由はProfileListView.as_view()、パラメーターを指定して呼び出す必要がある関数を返すためです。url()これが、コードではなく ulrpatterns で機能する理由です。as_view() が必要とする唯一のパラメーターは ですself

于 2013-03-15T16:45:58.130 に答える