python - 任何人都知道使 django-registration 使用电子邮件作为用户名的好方法吗?

标签 python django django-registration

我计划在我的网站上进行电子邮件注册激活,该网站将很快推出。我刚刚开始研究 django-registration,我对 django 上可用的其他电子邮件注册激活系统持开放态度。

我唯一的要求是,对于我的网站,我实际上并不使用用户名。相反,用户使用他们的电子邮件和密码登录。我想得到专家的意见,如何为此目的干净地安全地修改django-registration。

如果有更简单且可扩展的解决方案,请随时在此处发布。

最佳答案

我们将 django-registration 与自定义后端一起使用,我们在其中覆盖(或定义)了注册表单的 clean 方法:

def clean(self):
    ...
    # use the email as the username 
    if 'email' in self.cleaned_data:
        self.cleaned_data['username'] = self.cleaned_data['email']

还有其他方法:

请注意,默认情况下,用户名的长度只能是 30 个字符。你也需要一个技巧:

关于python - 任何人都知道使 django-registration 使用电子邮件作为用户名的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3690269/

相关文章:

python - 如何在 numpy 中创建一个新数组,并根据另一个数组从一个数组中选择元素?

python - Pandas groupby 计数在同一行中具有标题

python - 在 python 中传递可选参数

python - Django 使用用户配置文件扩展用户(错误 : User has no profile.)

django - form-horizo​​ntal 不适用于 django-crispy-forms 和 django-registration-redux

python - 有没有办法分离 matplotlib 图以便计算可以继续?

django - 即使设置中的 DEBUG=False,有没有办法向管理员用户显示 Django 调试堆栈跟踪页面?

python - 在 Django 中登录管理员

javascript - 如何在 Django 中运行 Javascript?

带有 RegistrationSupplementBase 的 Django 导入错误的 Python 无法导入名称 'ugettext_lazy'