我有一個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