Всем привет!
Столкнулся с нетривиальной для меня задачей. Есть модальное, бутстреповское окно (для обратной связи), которое можно вызвать с любой страницы сайта. Шаблон модального окна инклудится в основной шаблон. Есть вьюха, которая обрабатывает введенные в форму данные и отправляет писмо на указанный e-mail.
До недавнего времен меня все устраивало, пока не задумался о каптчи. Ведь без нее, с помощью простого скриптика меня могут заспамить. А каптча хоть кака-никакая а преграда. Но вот проблемка, как прикрутить каптчу к модалке, не используя модель. Вьюху тоже нельзя использовать, так как придется вешать вьюху на какой-нибудь url, а это не то, так как модалка посто блок в шаблоне, кторый показывается и скрывается js-ом.
В голову пришла мысль использовать форму для каптчи и собственный шаблонный тег (которые я частенок использую в данном проекте), но как быть с функцией проверки формы? там ведь фигурирует request? Короче, вот что я имею:
forms.py:
from django import forms
from captcha.fields import CaptchaField
class CaptchaForm(forms.Form):
captcha = CaptchaField()
modela.html
<div class = "modal fade" id = "contactsModal" role = "dialog">
<div class = "modal-dialog">
<div class = "modal-content">
<form class = "form-horizontal" action="/feedback/" method="post">
{% csrf_token %}
<div class = "modal-header gom_modal_header">
<button type="button" class="close gom_modal_close" data-dismiss="modal" aria-hidden="true">×</button>
<b>{% trans "Форма обратной связи" %}</b>
</div>
<div class = "modal-body">
<div class = "form-group">
<label for = "contact-name" class = "col-lg-2 control-label">
{% trans "Имя" %}:
</label>
<div class = "col-lg-10">
<input type = "text" class = "form-control" id = "contact-name" placeholder
= "{% trans "Ваше полное имя" %}" name="fb_name">
</div>
</div>
<div class = "form-group">
<label for = "contact-email" class = "col-lg-2 control-label">E-mail:</label>
<div class = "col-lg-10">
<input type = "email" class = "form-control" id = "contact-email" placeholder =
"{% trans "Ваш e-mail" %}" name="fb_email">
</div>
</div>
<div class = "form-group">
<label for = "contact-msg" class = "col-lg-2 control-label">
{% trans "Текст" %}:
</label>
<div class = "col-lg-10">
<textarea class = "form-control" rows = "8" name="fb_text"></textarea>
</div>
</div>
</div>
<div class = "modal-footer gom_modal_footer">
<button class = "btn btn-warning" type = "submit">{% trans "Отправить" %}</button>
<a class = "btn btn-default" data-dismiss = "modal">{% trans "Закрыть" %}</a>
</div>
</form>
</div>
</div>
</div>
Была бы возможность использовать для модалки виюху, было бы все просто. Но такой возможности нет. Посему вопрос: «Как можно втулить форму каптчи и функцию проверки оной в модалку»?
Заранее спасибо.