Как ограничить по времени доступ к разделу сайта? django

Проект на Django.

Нужно к одному из разделов сайта, например "Связь с администрацией" или "Оформление покупки" ограничить доступ по времени, например с 00:00 до 06:00 утра. Как это сделать???

В голову приходят много вариантов - ограничить на views, ограничить на forms или же вообще ограничить только на template (что скорее всего не лучший вариант). Буду благодарен любой помощи и советам.

Вопрос: как осуществить ограничение по времени (например с 00:00 до 06:00 утра) на раздел сайта? Как лучше всего сделать подобное ограничение - На views? На forms? На Template?

За примеры кода буду благодарен вдвойне.


Ответы (2 шт):

Автор решения: anme

Я пишу не на Django, но логика была бы такой: провряется текущее время в контроллере и исходя из этого решается, какой шаблон показать - запрашиваемый или с уведомлением о том, что раздел закрыт до такого-то времени.

Я бы еще добавил появляющееся предупреждение на страницу, о том, что страница скоро перестанет быть доступной и подумал бы о том, как обрабатывать приходящие от пользователей данные, сохранять их в базе несмотря на время или в хранилище браузера, если это вообще необходимо. Ну и о часовых поясах не забудьте.

→ Ссылка
Автор решения: Elliot13

Решил вопрос самостоятельно, но с подсказкой anme.

Напишу решение, может кому-то пригодится, так как подобных вопросов по джанго нет.

Создал отдельный шаблон .html с уведомлением о том, что данный раздел закрыт от и до, по времени.

Реализацию сделал во views:

Сначала получил текущее время, и выбрал только - часы.

now = datetime.datetime.now()
hour_now = now.hour

Далее во views реализовал проверку:

if 23 < hour_now < 6:

После данной проверки уже идёт вся основная логика работы раздела.

В else просто подставил шаблон с уведомлением о том, что раздел закрыт.

Надеюсь ответ кому-то будет полезен.

→ Ссылка