Для добавления формы на все страницы вашего сайта в Django, вы можете использовать контекстные процессоры и базовый шаблон.
1. Создайте файл, который будет содержать ваш контекстный процессор. Обычно это файл с именем context_processors.py
и располагается в каталоге проекта.
# context_processors.py from .forms import YourForm def form_processor(request): return {'your_form': YourForm()}
2. Зарегистрируйте ваш контекстный процессор в настройках Django, в файле settings.py
. Добавьте 'your_project.context_processors.form_processor'
в список 'context_processors'
.
# settings.py TEMPLATES = [ { ... 'OPTIONS': { 'context_processors': [ ... 'your_project.context_processors.form_processor', ], }, }, ]
3. Создайте базовый шаблон, в котором будет размещаться ваша форма. Обычно это файл с именем base.html
или layout.html
, который располагается в каталоге шаблонов вашего проекта. В вашем базовом шаблоне разместите код для отображения формы.
<!-- base.html --> <html> <head> <title>Ваш заголовок</title> </head> <body> <header> <!-- Верхнее меню --> </header> <main> {% block content %} {% endblock %} </main> <footer> <!-- Подвал --> </footer> <!-- Форма --> <form method="post"> {% csrf_token %} {{ your_form.as_p }} <button type="submit">Отправить</button> </form> </body> </html>
4. Теперь, когда у вас есть контекстный процессор и базовый шаблон, вы можете использовать этот базовый шаблон для всех остальных шаблонов вашего проекта. Для этого нужно указать, что ваш шаблон наследуется от базового шаблона, и заполнить блок content
, как требуется.
<!-- другие шаблоны --> {% extends 'base.html' %} {% block content %} <!-- ваш код --> {% endblock %}
Теперь все ваши страницы будут содержать форму, которую вы определили в контекстном процессоре и разместили в базовом шаблоне. Вы можете изменить стиль формы или добавить дополнительные поля, в зависимости от ваших требований.