Я пытаюсь разобраться, есть ли способ на все страницы сайта в главный шаблон вставить форму обратной связи. Не дублировать ее шаблон и обработчик в каждом компоненте, а вставить именно один раз в шаблон и подвязать обработчик. Один раз.
Размещать не на отдельной странице, как в примерах в гугле (я не нашел примера для себя), а в основном шаблоне.
Я создал в папке проекта файл forms.py
from django import forms
class ContactForm(forms.Form):
your_name = forms.CharField(label="Your name", max_length=100, required=False)
И тут проблема, не могу найти описания, как правильно сделать, чтобы в шаблон передать модуль формы. Пытаюсь разобраться на основе одного приложения main в views.py
class MainHome(ListView):
model = Main
template_name = 'main/index.tpl'
context_object_name = 'main'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['title'] = 'Главная'
context['form'] = ContactForm <- это форма
return context
В общем шаблоне прописал так:
<form action="" method="post">
{% csrf_token %}
{% for field in form %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label_tag }} {{ field }}
{% if field.help_text %}
<p class="help">{{ field.help_text|safe }}</p>
{% endif %}
</div>
{% endfor %}
<input type="submit" value="OK">
</form>
Форма вывелась, но только в рамках одного этого приложения, то есть в news и прочих формы нет.
При этом, нажатие на отправить приводит к 405 ошибке.