繁体   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