Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
simple_paginate(object_list, request):
# берет qs (или имя модели, тогда _default_manager.all()) и request,
# возвращает paginator: <dict from backend>.update('object_list' : from_current_page)
# можно сделать как обертку к декоратору, или декоратор сделать как обертку к этой ф-и.
def my_view(request):
how_to_name_it= simple_paginate(MyModel.objects.all(), request)
return direct_to_template('my_template.html', {'how_to_name_it': how_to_name_it})
def my_view(request):
how_to_name_it= simple_paginate(MyModel.objects.all(), request)
return direct_to_template('my_template.html',
{'how_to_name_it': how_to_name_it, 'object_list': how_to_name_it['object_list']})
def simple_paginate(queryset, request, *args, **kwargs)
@paginate(*args, **kwargs)
def inner(request)
return {'object_list': queryset}
data = inner(request)
# в data будет лежать
# {'object_list': <отфильтрованный object_list>, 'paginator': <наш паджинатор>}
# вместо этого можно возвращать 2 значения.
# Или принимать словарь с контекстом и обновлять его.
data['paginator']['object_list'] = data['object_list']
return data['paginator']
def my_view(request)
paginator = simple_paginate(Post.objects.all(), request, style='digg')
return direct_to_template('my_template.html', {'paginator': paginator})
Делим на страницы