Обработка форма

Есть форма в модальном окне (Bootstrap), которая подключается в шаблоны всех страниц. Она может быть открыта на любой странице. Как наладить взаимодействие views и этого модального окна? Это взаимодействие налажено только в одну сторону — views принимает информацию из формы, валидирует ее в forms.py и отправляет на почту. Как настроить редирект, чтобы остаться на текущей странице и, возможно, с открытой формой? Как отдавать ошибки серверной валидации в форму?

views.py

def submit(request):
if request.method == "POST":
    form = SubscribeForm(request.POST)
    if form.is_valid():
        name = form.cleaned_data['name']
        phone = form.cleaned_data['phone']
        email = form.cleaned_data['email']
        mail = send_mail('subject', 'message', 'sender', ['reciever'], fail_silently=False)
        if mail:
            messages.success(request, f'Письмо отправлено!')
            return redirect(???)
        else:
            messages.error(request, 'Ошибка отправки')
            return redirect(???)
    else:
        messages.error(request, 'Ошибка регистрации')
        return redirect(???)

modal.html

<form method="post" action="{% url 'submit' %}" id="subscribe_form" class="needs-validation container" novalidate>
            {% csrf_token %}
            {{ form.non_field_errors }}

            <div class="modal-body">

                <div class="md-form mb-5">
                    {{ post_form.name.errors }}
                    <i class="fas fa-user prefix grey-text"></i>
                    <input type="text" id="name" class="form-control" value="" required/>
                    <label for="name">Ваше имя</label>
                    <div class="valid-feedback">Отлично!</div>
                    <div class="invalid-feedback">Поле не должно быть пустым.</div>

                </div>

                <div class="md-form mb-5">
                    {{ post_form.name.errors }}
                    <i class="fas fa-phone prefix grey-text"></i>
                    <input type="text" id="phone" class="form-control" value="" required/>
                    <label for="phone">Ваш телефон</label>
                    <div class="valid-feedback">Отлично!</div>
                    <div class="invalid-feedback">Поле не должно быть пустым.</div>

                </div>

                <div class="md-form">
                    {{ post_form.email.errors }}
                    <i class="fas fa-envelope prefix grey-text"></i>
                    <input class="form-control" type="email" value="" id="email" required>
                    <label class="form-check-label" for="email">Ваш e-mail</label>
                    <div class="valid-feedback">Отлично!</div>
                    <div class="invalid-feedback">Введите правильный e-mail</div>
                </div>



            </div>

            <div class="modal-footer justify-content-center">
                <button type="submit" class="btn btn-outline-blue-grey waves-effect">Записаться <i
                        class="fas fa-paper-plane-o ml-1"></i></button>
            </div>
        </form>

Ответы (0 шт):