Если переменная -+15 минут меняться не будет и у вас сейчас в базе не огромное количество данных и вы можете переписать их добавление то:
Текущие данные в базе можно кластеризовать тупо прогнав через питон, думаю алгоритм любой может быть, не суть.
А новые записи кластеризовать при добавлении:
перед добавлением новой записи сделать выборку записей которые "+-15 минут от now".
Проверить найденные записи на наличие групп:
Если группы есть то искать те в которых все записи "+-15 минут от now", если не нашли то создаем новую и привязываем запись.
Группа - это M2M связь.
Возможно понадобятся какие-то блокировки в момент добавления и поиска групп.
Решение которое тут же пришло в голову, может что-то упустил.
Используя CreateView или любые другие generic views штуки можно использовать ООП во вьюхах, наследоваться от них и например определять один и тот же общий context_data для CreateView/DetailView/UpdateView/TodayArchiveView, использовать Mixin.
Вообщем ООП преимущества которые помогут избежать дублирование кода если ваши вьюхи не банальны и имеют что-то общее, например обновление/создание/удаление/вывод списка с пагинацией для одной модели.
Если нужна пагинация то я почти всегда использую generic views, потому что с ним это делается очень просто.
Да, определенно лучше разрабатывать на Linux.
Я сам занимаюсь Django разработкой из под Ubuntu.
Под Windows имел проблемы с pip, иногда нужно было собирать исходники и для этого нужны были разные библиотеки.
Еще могу посоветовать использовать Vagrant в качестве сервера\интерпретатора, с таким же Linux дистрибутивом и окружением как на продакшен сервере, это будет даже лучше. В таком случае можно даже попробовать разрабатывать из под Windows.