[英]Django / Userena Allow Signup if on Roster
我想知道解決此問題的最佳方法。 我正在使用Userena作為我的項目的基礎。 我想將團隊名冊加載到數據庫中或保留名冊的文本文件,並且在用戶注冊之前,網站應檢查用戶是否在名冊上。 如果沒有,那么他們將無法注冊。
在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']
注意:確保將Roster模型導入到要添加支票的任何位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.