我有一个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})
无论我在田里放什么,它都永远无法验证。事实上,它甚至看起来不像是清理田地。我只是在点击注册按钮后返回一个新的空白表格,没有错误,没有。
有什么想法吗?
答案 0 :(得分:2)
根据您发布的代码,您好像将request.POST
传递给request
的{{1}}参数。即你做的相当于:
RegistrationForm
你真正想做的是:
form = RegistrationForm(request=request.POST)
试试这个,看看它是否适合你。