Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
def video_list(request, object_set=Video.objects.all(), tpl_add={}):
"""
Все списки пропускать через эту херню, классический упрощённый, либо класический вид
и т.п. на основе request. Итого:
* Учитывает какой тип представления выбрал пользователь
* Учитывает сортировку, если указано
* Делает выборку по дате
"""
view_type = request.GET.get('view', 'classic')
time_type = request.GET.get('time', 'all')
show_type = request.GET.get('show', 'new')
object_set = object_set.order_by('-add_date')
object_set = add_time_filter(time_type, object_set)
return render_to_response('catalog/%s.html' % view_type,
RequestContext(request, {'videos': object_set,
'view_type': view_type,
'time_type': time_type,
'show_type': show_type,
'tpl_add': tpl_add}))
P.S> Помните об эффективности и красоте кода, это крайне важно.
request, и возвращающие HttpPresponse это экстеншены для Controller. А View размазано между логикой, формирующей dictionary в таком вот обработчике запроса, и рендером шаблона внутри render_to_response('template.html', dictionary).
Разные варианты отображения для одних и тех же данных