Как установить дату и время в Navbar для всех моих шаблонов в Django? - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть 3 htmls в моем проекте django.

 - base.html
 - navbar.html
 - home.html

Я хочу установить поле Datetime в Navbar, потому что я дома.я могу видеть время там. Я ищу что-то вроде {{ request.user }}, поэтому я использую это в Navbar.

Я знаю, что могу определить:

time = datetime.datetime.now()

для определения Datetime.

но я не могу определить какой-либо контекст для Навбара, который не имеет определения в Views.py, что я могу сделать?TNX для ответа.

1 Ответ

0 голосов
/ 13 сентября 2018

Используйте контекстные процессоры для установки глобальной переменной.


Как использовать контекстный процессор в Django

Создать функцию, которая возвращает текущее время

contextprocessor.py

from datetime import datetime
def time_now(request):
    return {'time_now': datetime.now()}

Зарегистрировать функцию как контекстный процессор в django

settings.py

TEMPLATE_CONTEXT_PROCESSORS = (
...
'contextprocessor.time_now',
)

Глобально использовать контекстный процессор

base.html

  <ul>
    <li class="nav-item">
      <a class="nav-link">{{ time_now | date:'Y-m-d H:i' }}</a>
    </li>
  </ul>
</nav>
...