1
我正在爲用戶註冊表單。這裏是我的模板看起來像什麼:Django表單類問題
<h1>Register</h1>
<form action="/register/" method="post">
{{ form.as_p }}
<input type="submit" value="Register">
</form>
這是我的觀點:
from djangoproject1.authentication import forms
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
def main(request):
rform = forms.RegisterForm()
return render_to_response("authentication/index.html", {'form': rform})
def register(request):
if request.method == 'POST':
rform = forms.RegisterForm(request.POST)
if rform.is_valid():
print 'VALID!'
# do something
return HttpResponseRedirect("/register-success/")
else:
print 'INVALID!'
rform = forms.RegisterForm()
return render_to_response("authentication/index.html", {'form': rform})
我還沒有得到以有效的部分呢,我還在上無效部分的工作。以下是我的表單的樣子:
from django import forms
class RegisterForm(forms.Form):
username = forms.CharField(min_length=6,max_length=15)
password = forms.CharField(widget = forms.PasswordInput(),min_length=6,max_length=15)
confirm_password = forms.CharField(widget = forms.PasswordInput(),min_length=6,max_length=15)
phone_number = forms.RegexField('\d\d\d-\d\d\d-\d\d\d\d',error_message='Invalid format')
def clean_password(self):
password = self.cleaned_data['password']
confirm_password = self.cleaned_data['confirm_password']
if password != confirm_password:
raise forms.ValidationError("Passwords don't match")
return password
用戶名,密碼,電話號碼。非常簡單。但是,當我點擊「註冊」而沒有填寫任何內容時,我應該會遇到一堆錯誤,但它們不會出現在任何地方。這是應該自動發生還是我錯過了什麼?
謝謝!
是的,如果您刪除該行,您將返回無效的窗體,其中將包含爲空的字段的錯誤消息(s)。 – nstehr 2010-08-19 01:36:13
那麼回答你的問題呢? – 2010-08-19 01:59:49
對不起,跑了一下。是的,這確實回答了我的問題,但是,我仍然遇到問題。我在「confirm_password」上得到了一個KeyError異常。我查找了KeyError,並且它說Raised「在現有密鑰集中找不到映射(字典)鍵」。根據我對clean_data的理解,'confirm_password'應該在那裏b/c這是一個字段,但我想它不是 – JPC 2010-08-19 04:59:43