django: как мне перенести это представление в эквивалент универсального представления на основе классов? - PullRequest
2 голосов
/ 18 июля 2011

У меня проблемы с преобразованием следующего кода в новый общий формат представления на основе классов django 1.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, } )

Я ценю ваш вклад!

1 Ответ

3 голосов
/ 18 июля 2011

В разделе 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...