当新用户在Django中注册时,清理电子邮件字段?

时间:2018-02-26 09:27:54

标签: python django email user-registration

据我所知,标准的新用户进程注册(Django 2.x)仅对email field进行验证exists,对E-mail Schemas进行等效。但是用户可能会写这样的电子邮件地址:JOHN_DOE@MAIL.COM(通过Caps Lock)并将其保存到DB。

  

这将是危险的,因为其他用户可以注册这些电子邮件的帐户,但是使用小写:john_doe@mail.com或类似的,但仍然是该电子邮件地址!

所以,现在的问题是如何(智能)清理用户注册时的电子邮件地址?。我的想法:

  • 在保存到数据库之前将电子邮件设置为小写
  • 检查DB中是否存在/唯一(当然是小写视图)

我寻找解决这个问题的最佳实践,顺便说一句。

1 个答案:

答案 0 :(得分:0)

我会将其更改为小写,然后保存它,因为它看起来像要完成的操作次数最少。它也应该制作最短的代码。

如果您决定在DB中检查它是否以小写字母唯一,然后保存它,您最终可能会检查数据库两次(第一次检查时为一次,保存时为第二次),如果您是'我会用错误的方式实现它。