簡體   English   中英

Django / Userena允許注冊(如果在名冊上)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM