以用户名发送电子邮件,区分大小写的电子邮

时间:2018-01-03 10:26:43

标签: django

我在我的Django应用程序中使用电子邮件地址作为用户名

USERNAME_FIELD = 'email'但电子邮件字段区分大小写:

test@example.comTEST@EXAMPLE.COM保存为两个不同的用户。这是正常的,还是应该以某种方式验证?

2 个答案:

答案 0 :(得分:2)

在将电子邮件用于保存,比较等操作之前小写电子邮件。

def save(self, *args, **kwargs):
    self.email = self.email.lower()
    return super(User, self).save(*args, **kwargs)

答案 1 :(得分:2)

您应该将这两封电子邮件验证为同一用户,并尝试始终在lowercase保存用户名。

如果您将两封电子邮件保留为不同的用户,则有一些用例需要手动处理,这会增加开销。

  
      
  • 假设test@example.com错误地尝试使用Caps登录,在这种情况下,他永远无法访问其帐户。
  •   
  • 您必须始终牢记在开发期间不要在username字段iexacticontains上使用不区分大小写的查找。
  •