我计划在我的网站上进行电子邮件注册激活,该网站将很快推出。我刚刚开始研究 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 个字符。你也需要一个技巧:
关于python - 任何人都知道使 django-registration 使用电子邮件作为用户名的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3690269/