- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的自定义用户模型,将电子邮件 ID 作为唯一键(以及用户名)。
class User(AbstractUser):
# some more other fields
class Meta:
unique_together = ('email', )
现在我已经创建了此处提到的自定义后端(用于电子邮件身份验证)Django authentication with custom user model with email-id as unique key
到目前为止一切看起来都很好,工作正常!我可以登录、注销等
现在我有两行/对象,一个是 super 用户,它有用户名和电子邮件 ID,第二行只有电子邮件 ID,但用户名是 Null(我从 shell 创建的)。
现在,当我尝试使用一些唯一的电子邮件 ID 创建一个用户对象时,它显示完整性错误(在问题标题中提到)。
我使用这个查询创建了一个新用户
u, c = User.objects.get_or_create(email='some-new-unique-email@gmail.com')
根据Unique key的定义,它可以接受多个Null值,对吧?
我的实现有什么问题。任何帮助,将不胜感激。
这是表格表示,电子邮件和用户名都是 UNI 和 NOTNULL
mysql> describe myapp_user;
+--------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| password | varchar(128) | NO | | NULL | |
| last_login | datetime | YES | | NULL | |
| is_superuser | tinyint(1) | NO | | NULL | |
| username | varchar(30) | NO | UNI | NULL | |
| first_name | varchar(30) | NO | | NULL | |
| last_name | varchar(30) | NO | | NULL | |
| email | varchar(254) | NO | UNI | NULL | |
| is_staff | tinyint(1) | NO | | NULL | |
| is_active | tinyint(1) | NO | | NULL | |
| date_joined | datetime | NO | | NULL | |
编辑:
但令我惊讶的是,此表中的第二个条目没有用户名值(检查两次、repr、bool 等)。如果这是 NOTNULL 列怎么可能。
这是 django shell 的输出-(第一个用户,root
是 super 用户,第二个没有用户名。
In [4]: User.objects.all()
Out[4]: [<User: root>, <User: >]
In [5]: User.objects.all().values_list('id', flat=True)
Out[5]: [1L, 2L]
In [6]: User.objects.get(id=2)
Out[6]: <User: >
In [7]: u = User.objects.get(id=2)
In [8]: u.__dict__
Out[8]:
{'_state': <django.db.models.base.ModelState at 0x7f855c325d10>,
'date_joined': datetime.datetime(2015, 8, 11, 7, 37, 42, tzinfo=<UTC>),
'email': u'abc@gmail.com',
'first_name': u'',
'id': 2L,
'is_active': True,
'is_staff': False,
'is_superuser': False,
'last_login': datetime.datetime(2015, 8, 11, 11, 19, 50, tzinfo=<UTC>),
'last_name': u'',
'password': u'pbkdf2_sha256$20000$ylufrgAOMJYI$z8kc2pSckWTn3AHbFgzkP5AwGR9qh8+Mtd/pw3srxQE=',
'username': u''}
In [9]: repr(u.username)
Out[9]: "u''"
In [10]: type(u.username)
Out[10]: unicode
In [11]: bool(u.username)
Out[11]: False
In [12]: str(u.username)
Out[12]: ''
PS:我刚刚注意到,first_name 和 last name 也是 NOTNULL,但它们在两行中都是空的。
最佳答案
基本上 Django 用户(或抽象用户)模型将用户名作为 NOT NULL 约束。因此,通过添加此约束,您只是为电子邮件添加了唯一约束。
这仍然有 username is NOT NULL
约束。您可以将用户名配置为拥有电子邮件地址本身,例如
username = email.split('@')[0]
在 MyModel.objects.create
语句处
关于python - IntegrityError : (1048, "Column ' username' cannot be null") when emailid is also unique key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31941249/
这是我第一次使用 php 学习 session ,我正在尽可能地制作最简单的登录页面。 因此,只要用户永远不会关闭网页,理论上这是否可以让任何给定的字符串 $username 始终存储在 $_SESS
我已在Windows 10中更改了用户名,现在我需要自动将更改后的用户名作为Powershell脚本获取 但是我尝试的所有操作都返回了我的旧用户名,除了一些与AD相关的查询。 例子: $env
我的 html 页面上有这个链接,可以在特定用户上打开 Instagram 应用程序: Link to Instagram Profile 我一直在寻找自动运行 url 'instagram://us
此代码似乎不适用于 Windows 7/8? Public Function UserName() UserName = Environ$("UserName") End Function 有
Excel宏:如何编写此“如果用户名[示例代码:Environ(“用户名”)]等于此范围内的值之一[示例:我从工作簿创建的范围:范围(“Authorized_Users”)]然后。 ..“谢谢! 最佳
PowerShell的$env:username有什么区别和 [environment]::username和 为什么他们可能会返回不同的用户 ? (我知道还有其他方法可以获取当前用户) 一些背景:
与大多数网站的工作方式相同,我将“UsErNaMe”存储在数据库中,但让用户使用“用户名”登录。 这是一个相当明显且必要的功能,很多人似乎都问过它,但我不断遇到的解决方案似乎与 Devise 自己的文
在终端中输入 psql 后,用户通常会以 username=# 的形式出现在控制台中。但后来我注意到它说username-#,其中等号被连字符替换,但它似乎仍然以相同的方式执行。 我知道这是一个简单的
在终端中输入 psql 后,用户通常会以 username=# 的形式出现在控制台中。但后来我注意到它说username-#,其中等号被连字符替换,但它似乎仍然以相同的方式执行。 我知道这是一个简单的
这个问题已经有答案了: Reference - What does this error mean in PHP? (38 个回答) 已关闭 5 年前。 我是 PHP 的初学者,我一整天都在尝试修复这
我正在尝试从表 users 中取出 url 并将其插入到表 images 的 url> 来自当前登录的用户。此代码无法在 images 表中插入 url。 $uploaduser = $_SESSIO
我很难让 WebDriver 在 PayPal 网站的用户名框中键入内容。我已经尝试过 xpath、id、css,但这里一定有我遗漏的东西,因为它应该很简单。文本框是代码最底部的 input = "e
我正在使用 iOs 社交框架从某个用户那里检索 facebook 提要。为此,在进行身份验证后,我将执行以下操作: NSURL *requestURL = [NSURL URLWithString:@
我有一个 WCF web 服务托管在 IIS 中。这是相同的配置: 当我尝试在我的 WinForms 客户端中使用此特定服务(作为服务引用添加时)时,它会抛出此异常: The username is
def login_page(request): form = LoginForm(request.POST or None) context = { "form":
更新我想我很快就假设了 voodoo jquery 之谜。我注意到我确实使用了两次“用户名”ID,这就是问题所在。第二个用户名 id 是通过从 php 注入(inject)页面的 html 代码添加到
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
到目前为止,下面显示的第一个 $sql = “INSERT INTO MySQLtable 语句将插入一个包含静态文本的新行 VALUES ('statictext', 'statictext') 。
我几乎完成了我的大型项目的开发,但是如果我能做到而不是让用户配置文件页面位于:http://example.com/profile/username/USERNAME<,我会很高兴 (我目前正在使用
(注意我是 Scala 的新手,仍然在为集合操作的最常见操作而苦苦挣扎。) 我想将 List[Task] 转换为 Map。以下是一些详细信息: // assignee may be null case
我是一名优秀的程序员,十分优秀!