Как я могу получить данные формы из макетов Django (например, «base.html»), не отправляя формы на всех страницах через представления? - PullRequest
0 голосов
/ 30 октября 2018

многие шаблоны берутся из base.html. base.html имеет одну форму рассылки, которая получает электронную почту от пользователя. Есть ли простой способ получить данные формы из «base.html» для просмотра. (Отправка форм во всех страницах через просмотры возможна, но я думаю, что есть простая, хорошо выглядящая идея)

1 Ответ

0 голосов
/ 30 октября 2018

Для этого используйте контекстный процессор:

Добавьте новый файл .py в корневой проект, назовите его context_processors.py.

context_processors.py

from app.forms import GlobalForm

def global_variables(request):
   form = GlobalForm()
   context = {'global_form':form}
   return context

Затем в settings.TEMPLATES добавьте процессоры контекста в качестве последней строки.

# stuff
'django.contrib.messages.context_processors.messages'
'project_name.context_processors.global_variables'

Итак, {{global_form}} доступен во всех шаблонах

...