【问题标题】:Sound strategy for extending Django User model?扩展 Django 用户模型的合理策略?
【发布时间】:2011-03-22 15:20:13
【问题描述】:

这看起来应该没问题,因为我没有触及 User 模型本身。

我想完全根据电子邮件和密码注册用户。 User 模型中需要用户名。我的想法是,我可以创建一个自定义的 UserCreationForm ,将电子邮件地址保存为用户名并验证电子邮件地址。

不幸的是,接下来我将不得不通过 user.username 引用电子邮件地址。

这是标准吗?有没有更好的办法?

谢谢

【问题讨论】:

  • 不要这样做:当电子邮件长度对于默认用户字段而言太长时,您会遇到问题。如果您查看其他一些关于扩展用户名字段长度的 SO 帖子,您可以这样做。我已经将电子邮件地址的哈希值存储为用户名并通过电子邮件地址登录用户。
  • 是的,我没有意识到用户名有 30 个字符的限制,真烦人。你的方法是有道理的 Yuji。

标签: django django-registration


【解决方案1】:

一些答案​​here

似乎最好的方法可能是写一个custom auth backend(不太难)来接受电子邮件地址登录,并在用户名字段中存储电子邮件的哈希值以满足所需的唯一用户名。

【讨论】:

  • 如果洛特的方法不起作用,我当然会试试这个。谢谢 dgel
【解决方案2】:

我的想法是,我可以创建一个自定义 UserCreationForm,将电子邮件地址保存为用户名并验证电子邮件地址。

关闭。

使用clean 方法将电子邮件地址复制到用户名。除了默认登录表单之外,这对所有内容都很有效。

需要调整默认登录表单以允许用户名是电子邮件地址。默认形式只需要字符,并且拒绝标点符号。

【讨论】:

  • 啊哈,这看起来很简单。谢谢洛特
猜你喜欢
  • 2016-10-12
  • 2011-02-28
  • 2013-12-06
  • 2018-01-21
  • 1970-01-01
  • 2018-04-24
  • 2017-03-02
相关资源
最近更新 更多