Делаю приложение афишы, Имеются следующие модели:
class Events(models.Model):
title = models.CharField('Название мероприятия', max_length=255)
class Session(models.Model):
event = models.ForeignKey(Events)
date = models.DateField('Дата проведения мероприятия')
Задача вывести на страницу список мероприятий за определенную дату (показать время сеансов) и разбить на страницы.
Пошел таким путем:
1. Выбираем по дате сеансов мероприятия - по ним происходит пагинация.
2. По выбранным мероприятиям и дате выбираются сеансы и передаются в шаблон через контекст. И там выводятся через {% regroup %}.
Но сделать выборку сеансов с учетом пагинации не выходит.
class IndexView(generic.ListView):
template_name = 'events/list.html'
paginate_by = 1
def get_queryset(self, **kwargs):
date = datetime.today()
return Events.objects.filter(session__date=date).distinct()
def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
date = datetime.today()
context['session'] = Session.objects.filter(event=self.get_paginate_by(self), date=date)
return context
В последствии нужно будет прикрутить выборку по категории мероприятия.
Подскажите - может вообще неверно логика выбрана.