У меня есть форма django, я пытаюсь добавить поддержку CAPTCHA. Однако, это требует от меня передать request.session к форме. Для достижения этой цели, я добавил этот конструктор в форме:Форма Django с __init__ не очищает поля
def __init__(self, request=None, *args, **kwargs):
super(RegistrationForm, self).__init__(*args, **kwargs)
self.request = request
Затем я создания экземпляра RegistrationForm, передавая объект запроса к нему. Однако при отправке формы он не может очистить любое из полей. Он просто не выполняет проверку и передает пустое поле обратно в шаблон. Ниже приведен регистрационный код:
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
...do registration...
else:
return render(request, 'template.htm', {'form': form})
Независимо от того, что я помещал в полях, он никогда не проверяется. Фактически, он даже не похож на то, что он очищает поля. Я просто возвращаю новую пустую форму после нажатия кнопки регистрации, никаких ошибок, ничего.
Любые идеи?
В блоке else вы можете положить 'form.errors' и посмотреть, что такое ошибка? – karthikr
Вам нужно выполнить некоторую отладку самостоятельно; если это не известная проблема, ответить на информацию, представленную здесь, будет непросто. Поместите распечатываемые заявления здесь и там, чтобы узнать, что происходит с вашей формой. – asermax