フォームを検証しようとしています(これまでは以前は動作していました)。なんらかの理由で、私は、form.is_valid()が呼び出されたときに呼び出されるclean_username(self)などのさまざまなクリーニング機能を取得できないようです。Djangoフォームがクリーンでない_ <fieldname>
私は(彼らはあなたが;-)ご覧建設中)ほぼ十分なチェックがまだ存在していない知っているが、ここで私のクラスです:
class LoginForm(forms.Form):
username = forms.CharField(max_length=30)
password = forms.CharField(max_length=30,widget=forms.PasswordInput)
def clean_password(self):
print "Cleaning password"
password = self.cleaned_data['password']
if password == u"":
raise forms.ValidationError("Password is blank.")
return password
def clean_username(self):
username = self.cleaned_data['username']
if len(username) < 4:
raise forms.ValidationError("Username is fewer than four charecters.")
return username
class RegistrationForm(LoginForm):
confirm_password = forms.CharField(widget=forms.PasswordInput, max_length=30)
email = forms.EmailField()
def clean_confirm_password(self):
print "Cleaning confirm password"
clean_confirm_password = self.cleaned_data['confirm_password']
if clean_confirm_password == u"":
raise forms.ValidationError("Confirming password is blank.")
return clean_confirm_password
def clean(self):
print "Running clean on a registration form"
print self.cleaned_data.items()
password = self.cleaned_data['password']
confirm = self.cleaned_data['confirm_password']
if password != confirm:
raise forms.ValidationError('Passwords do not match.')
return self.cleaned_data
ありがとうございました!
+1場合forms.pyを掘り下げるために役立ちます。私は人々がソースコードを調べない方法を驚かせています。 – cethegeek
恐ろしいことがあります。私は偶然に何かを変えて保存することを恐れています。不合理なこと、私はすべてが簡単に交換できる時を知っています。 ;-) – SapphireSun