2012-10-31 36 views
0

我想知道解決這個問題的最佳方法。我正在使用Userena作爲我的項目的基礎。我想將一個球隊名冊加載到數據庫中,或者保留名冊的文本文件,並且在用戶註冊之前,網站應該檢查用戶是否在名冊上。否則,他們將無法註冊。Django/Userena允許註冊名單上的球員

回答

0

in userena.forms是SignupForm。我將擴展表單驗證中正在實施的三種乾淨方法之一。這些是clean_username,clean_email和clean。

例如,下面是clean_email方法。它已經檢查電子郵件是否已被使用。我會維護一個包含有效電子郵件的名單表。這樣你可以添加另一層檢查。我會把它放在第一個下面。

def clean_email(self): 
    """ Validate that the e-mail address is unique. """ 
    if User.objects.filter(email__iexact=self.cleaned_data['email']): 
     raise forms.ValidationError(_('This email is already in use. Please supply a different email.')) 
    return self.cleaned_data['email'] 

比較檢查電子郵件是否被其他用戶使用。對於花名冊,如果在名單表中找不到該錯誤,我們將提出錯誤。

def clean_email(self): 
    """ Validate that the e-mail address is unique. """ 
    if User.objects.filter(email__iexact=self.cleaned_data['email']): 
     raise forms.ValidationError(_('This email is already in use. Please supply a different email.')) 
    if not Roster.objects.filter(email__iexact=self.cleaned_data['email']): 
     raise forms.ValidationError(_('You are not able to signup as you are not part of the Roster.')) 
    return self.cleaned_data['email'] 

注意:請務必將您的名冊模型導入到您添加支票的任何位置。

+0

太棒了。正是我需要的。我現在要做的就是製作花名冊。 –