【发布时间】:2013-07-28 17:40:59
【问题描述】:
我有一个 django 表单,我正在尝试向其中添加 CAPTCHA 支持。但是,这需要我将 request.session 传递给表单。为此,我将这个构造函数添加到表单中:
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放上来看看是什么错误? -
你需要自己做一些调试;除非这是一个已知问题,否则很难用此处提供的信息来回答。在这里和那里放置打印语句以查看您的表单发生了什么。
标签: django forms validation