पर कॉल नहीं कर रहा है, मैं एक फॉर्म को सत्यापित करने का प्रयास कर रहा हूं (और यह पहले काम करता था)। किसी कारण से, मुझे form.is_valid() कहा जाता है जब मुझे कॉल करने के लिए clean_username (self) जैसे विभिन्न सफाई कार्यों को प्रतीत नहीं होता है।Django clean_<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