Время, которое держалось на совпадении
Скрытая ошибка настройки, из-за которой при переезде сервера все занятия молча сдвинулись бы на четыре часа.
коммиты: 273aa96
Симптом
Ученики из Москвы, Лондона, Новосибирска и США видели расписание по саратовскому времени.
Причина
База создавалась с хранением времени в UTC, а позже проект переключили на локальное время без пояса (USE_TZ = False). Всё работало только потому, что часовой пояс сессии PostgreSQL случайно совпадал с поясом школы.
Смена настроек базы или переезд сдвинули бы все даты без единой ошибки в логах. Новое поле даты создало бы колонку другого типа, и схема стала бы неоднородной.
Решение
Хранение времени с поясом, вывод в поясе конкретного пользователя через middleware, границы дня и месяца считаются от пояса пользователя, а не сервера.
Проверка
Тесты на три пояса с разным смещением: Саратов, Новосибирск, тихоокеанское время США.