2012-03-25 15 views
0

我想做一個用戶註冊表格,我將有字段,如名,姓,電子郵件,重新電子郵件和密碼。如何驗證,以便在Django中輸入電子郵件相同?

所以我的問題是如何驗證,所以輸入電子郵件和重新電子郵件是平等的。我找不到一些幫助閱讀文檔進行驗證這裏的時候:https://docs.djangoproject.com/en/1.4/ref/validators/

我發現這個網站的時候一派,但似乎已經Django的很多改變,因爲2006年由於AlwaysMatchOtherField在1.4

不存在這裏的是網站 http://www.b-list.org/weblog/2006/sep/02/django-tips-user-registration/

+0

是否要求用戶輸入兩次電子郵件並驗證他們是否正確完成了電子郵件? – 2012-03-25 20:22:56

+0

是的,這是正確的 – starcorn 2012-03-25 20:25:30

回答

3

您可以覆蓋你的形式clean方法做validate fields that rely on each other

class MyForm(models.ModelForm): 

    def clean(self): 
     cleaned_data = super(MyForm, self).clean() 
     if cleaned_data['email'] != cleaned_data['re_email']: 
      raise forms.ValidationError("Your emails don't match") 
     return cleaned_data 

對於一個登記表,你應該使用django-registration

+0

謝謝,我會研究它:) – starcorn 2012-03-25 20:32:18

0

這裏是我做了以下的https://github.com/django/django/blob/master/django/contrib/auth/forms.py的例子:

def clean_email2(self): 
    email = self.cleaned_data.get("email") 
    email2 = self.cleaned_data.get("email2") 
    if email and email != email2: 
     raise forms.ValidationError(
      "Your email address differs", 
     ) 
    return email2 

爲了防止出錯,這是非常重要的請檢查電子郵件地址是否已填寫。