这是我查询的提取部分,反映了EMAIL_ADDRESS列数据类型和属性:
EMAIL_ADDRESS CHARACTER VARYING(20) NOT NULL,
Run Code Online (Sandbox Code Playgroud)
但是,约翰桑德斯使用VARYING(256).
这表明我没有必要正确理解变化.
据我所知,在我的情况下,电子邮件地址的长度为20个字符,而Jodn为256个字符.
John的代码中的上下文
CREATE TABLE so."User"
(
USER_ID SERIAL NOT NULL,
USER_NAME CHARACTER VARYING(50) NOT NULL,
EMAIL_ADDRESS CHARACTER VARYING(256) NOT NULL, // Here
HASHED_PASSWORD so.HashedPassword NOT NULL,
OPEN_ID CHARACTER VARYING(512),
A_MODERATOR BOOLEAN,
LOGGED_IN BOOLEAN,
HAS_BEEN_SENT_A_MODERATOR_MESSAGE BOOLEAN,
CONSTRAINT User_PK PRIMARY KEY(USER_ID)
);
Run Code Online (Sandbox Code Playgroud)
我从未见过普通人使用的超过20个字符的电子邮件地址.
数据库中电子邮件地址的最佳长度是多少?
我需要将auth中的最大用户名大小增加到超过模型中定义的30个字符.怎么做到呢?我不确定只是定制模型是正确或安全的方式.
在某人将此问题标记为此问题的副本之前,django的auth_user.username可以是varchar(75)吗?怎么可能这样呢?关于SO的其他此类问题,请阅读此问题.我联系到的问题是准确地提出这个问题,但不幸的是,答案没有解决所提出的问题.
我可以通过执行以下操作将auth_user.username字段更改为100个字符:
username = models.CharField(_('username'), max_length=30, unique=True, help_text=_("Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters"))如果我这样做,它会破坏Django中的任何东西吗?
当我将Django更新为更高版本时,这将破坏不是问题.我也不是在考虑编写其他身份验证方法.我只是想知道如果我这样做,我是否会破坏任何东西.
我打算在我的网站上进行电子邮件注册激活,这将很快启动.我刚刚开始关注django-registration,我对django上提供的其他电子邮件注册激活系统持开放态度.
我唯一的要求是,对于我的网站,我实际上并没有使用用户名.而是用户使用他们的电子邮件和密码登录.我希望得到专家的意见如何修改Django的登记干净和安全地用于这一目的.
如果有更容易扩展的解决方案,请随时在此处发布.