Django использует встроенные имена переменных для шаблонов? - PullRequest
0 голосов
/ 18 апреля 2020

Я учусь Django и сделал несколько уроков. Имеет ли Django встроенные переменные, доступные любому шаблону в любом приложении, или они определены где-то в коде? Например, у меня есть приложение под названием users. В models.py users / models.py у меня есть этот код:

from django.contrib.auth.models import User

В urls.py У меня есть это:

 path('profile/', user_views.profile, name='profile')

В users/views.py У меня есть функция с именем profile, но не там, где в этой функции я передаю переменную, которая позволяет использовать получение имени человека, однако в моем шаблоне profile.html я могу получить имя первого человека с помощью:

{{ user.first_name }}

Почему это? У меня сложилось впечатление, что нам нужно было передать указанные c переменные в качестве словарей.

1 Ответ

1 голос
/ 18 апреля 2020

Вы правы в части, где вам нужно было бы передать словарь из представления в шаблон, чтобы получить к нему доступ, но по умолчанию передается лишь несколько вещей, одна из которых - данные аутентификации, объект пользователя.

Это позволяет вам использовать такие функции, как 'user.is_authentication' и c для рендеринга.

Основная причина передачи переменной заключается в проверке аутентификации JWT в каждом запросе, поступающем и отправляемом с сервера. Как вы уже видите, переменная недоступна в браузере, потому что она была преобразована в повар ie, который вы можете просмотреть в браузере.

Подробнее вы можете прочитать здесь https://docs.djangoproject.com/en/3.0/ref/templates/api/#built -in -template-контекстные процессоры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...