2

次のコードを新しいdjango1.3クラスベースのジェネリックビュー形式に変換するのに問題があります。具体的には、「extra_context」をクラスベースのビューに渡す方法がわかりません。誰かがこのコードを新しい表記に変換するのを手伝ってもらえますか?または良い例へのリンクを投稿しますか?ドキュメントを読みましたが、例は非常に薄っぺらです。

def return_event_list_object(request, username, queryset, entries_per_page, param1, param2):
    ...
    ...
    return object_list(request, queryset = queryset,
            template_name = 'myapp/list_events.html', 
            paginate_by = int(entries_per_page), 
            template_object_name = 'event',
            extra_context = {'param1': param1, 
                            'param2': param2, } )

ご意見ありがとうございます!

4

1 に答える 1

3

ドキュメントのextra_contextセクションでは、コンテキストにアイテムを追加する方法について説明しています。

クラスベースのビューは、extra_context引数を提供しません。代わりに、get_context_data()をオーバーライドして、ビューをサブクラス化します。例えば:

あなたの場合、試してみてください:

class MyListView(ListView):
    def get_context_data(self, **kwargs):
        context = super(MyListView, self).get_context_data(**kwargs)
        context.update({
            'param1': kwargs['param2'],
            'param2': kwargs['param1']
        })
    return context
于 2011-07-18T11:06:56.697 に答える