我计划在我的网站上进行电子邮件注册激活,该网站将很快推出。我刚刚开始研究 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']

还有其他方法:
  • http://bitbucket.org/hakanw/django-email-usernames/wiki/Home
  • http://djangosnippets.org/snippets/74/
  • http://www.davidcramer.net/code/224/logging-in-with-email-addresses-in-django.html

  • 请注意,默认情况下,用户名只能是 30 个字符的 长。你也需要一个黑客:
  • Can django's auth_user.username be varchar(75)? How could that be done?
  • 关于python - 任何人都知道使 django-registration 使用电子邮件作为用户名的好方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3690269/

    10-14 14:32
    查看更多