重复的键值违反了 django 中的唯一约束

2023-11-25

我有在 django 中创建新用户的功能,如下所示:

def initialize(username, password, email, title, firstName, lastName,  telephoneNumber, mobileNumber, smsActive, for_company_id = 1):
    sUsername = username.lower()
    if len(username) > 30:
        sUsername = username[:30].lower()
    user = User.objects.create_user(sUsername, email, password, last_login=datetime.datetime.now())
    user.first_name = firstName
    user.last_name = lastName
    user.save()
    userProfile = UserProfile(user = user, title = title, telephone = telephoneNumber, mobile = mobileNumber, smsActive = smsActive)
    userProfile.code2Factor = pyotp.random_base32()
    userProfile.forCompanyId = for_company_id
    userProfile.main_updated = datetime.datetime.now()
    userProfile.save()
    return userProfile

然后我这样做:

user_profile = initialize(input.user.username, password, '', input.title, input.user.first_name, input.user.last_name, input.telephone, input.mobile, sms_active)
user_profile.user.groups.set([Group.objects.get(id=gr.id) for gr in input.groups])
user_profile.cultureMajor = input.cultureMajor
user_profile.offerTax = input.offerTax if 'offerTax' in input else False
user_profile.user.save()

但是当我尝试创建新用户时,出现如下错误:

duplicate key value violates unique constraint "auth_user_pkey" DETAIL: Key (id)=(21811) already exists.

The id 21811数据库中存在但最后一个是25530.

为什么 django 不使用第一个下一个数字作为 ID?

UPDATE

  • 用户模型是 django 的标准模型。
  • 用户资料如下:

    class UserProfile(models.Model):
        forCompanyId = 1
        user = models.OneToOneField(to=User, on_delete=models.DO_NOTHING)
        title = models.CharField(max_length=10, null=True, blank=True)
        telephone = models.CharField(max_length=50, null=True, blank=True)
        mobile = models.CharField(max_length=50, null=True, blank=True)
        smsActive = models.BooleanField(default=False)
        car_by_car_notification = models.BooleanField(default=True)
        car_by_car_mail = models.BooleanField(default=True)
        daily_digest = models.BooleanField(default=True)
        offer_tax = models.BooleanField(default=False)
        cultureMajor = models.CharField(max_length=3, blank=False, default='en')
        cultureMinor = models.CharField(max_length=3, blank=True)
        modulesBlocked = models.ManyToManyField(to=Module, through='UserModuleBlocked')
        otherEmails = models.CharField(max_length=512, null=True, blank=True)
        otherContact = models.CharField(max_length=256, null=True, blank=True)
        browser = models.CharField(max_length=256, null=True, blank=True)
        picture = models.ImageField(upload_to=settings.MEDIA_ROOT, blank=True, null=True)
        code2Factor = models.CharField(max_length=256, null=True, blank=True)
        mobile2Factor = models.BooleanField(default=False)
        authenticator2Factor = models.BooleanField(default=False)
        main_user_id = models.IntegerField(null=True)
        main_updated = models.DateTimeField(_('date updated on main'), default=timezone.now)
    

这不是 Django 的问题

duplicate key violates a unique constraint

当您创建重复密钥时会出现此消息。就您而言,这可能意味着您正在使用的表中的主键序列已不同步。这可能是由于手动导入造成的,当我遇到此问题时,这种情况经常发生。您必须手动重置主键索引。

我不确定你的数据库是什么,我将与你分享我用来修复它的粗略 Postgres SQL 命令,前两个命令允许你查看它是否不同步,最后一个命令将修复它。如果这还不够/它是一个不同的数据库,请评论

SELECT MAX('auth_user_pkey') FROM User;   
SELECT nextval('auth_user_key_sequence');

SELECT setval('auth_user_key_sequence', (SELECT MAX(auth_user_pkey) FROM User)+1);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重复的键值违反了 django 中的唯一约束 的相关文章

  • Django 自引用关系?

    我正在尝试创建模型页面 页面也应该能够有 子页面 我的模型代码如下使Python崩溃 http pastie org private butthk1aaeb3pmh7mmag1g在我的Mac python 2 6 1 和Ubuntu 10
  • Python2 math.fsum 不准确?

    我正在使用 python2 数学模块来计算 fsum 的总和 据我所知 0 1通常不能存储二进制 据我了解 math fsum 应该以某种方式解决这个问题 import math math fsum 0 0 0 1 0 1 math fsu
  • 来自 yahoo 的 python lxml etree 小程序信息

    雅虎财经更新了他们的网站 我有一个 lxml etree 脚本 用于提取分析师建议 然而现在 分析师的建议已经存在 但只是以图表的形式出现 你可以看到一个例子这一页 https finance yahoo com quote CSX ana
  • 在 Windows 中安装 IPOPT 求解器以与 pyomo 一起使用

    如何安装 IPOPT 求解器以在 Windows 中与 pyomo 一起使用 我尝试了 pip install ipopt 但收到此错误 错误 为 ipopt 构建轮子失败 我正在使用 Windows 10 和 Python 3 7 4 在
  • SQLAlchemy如何为同一个表定义两个模型

    我有一个表 其中一列是具有两个值的 varchar groupA groupB 当我创建模型时 我想实现两件事 A 组模型 包含 X 数量的相关函数 B 组模型 包含 Y 数量的相关函数 两个模型的功能并不相同 尽管它们代表了same ta
  • Python + Selenium:驱动程序路径

    是否有可能在不输入路径的情况下运行 Python Selenium 脚本exePython 行中每个脚本中的文件 driver webdriver Chrome 同样的问题也适用于 IE 驱动程序 Edge 驱动程序 和 Gecko 驱动程
  • 尝试将行附加到按对象分组中的每个组时出现奇怪的行为

    这个问题是关于一个函数在应用于两个不同的数据帧时以意想不到的方式表现的 更准确地说 是 groupby 对象 要么是我遗漏了一些明显错误的东西 要么是 pandas 中存在错误 我编写了以下函数 将一行附加到 groupby 对象中的每个组
  • 在ubuntu中安装pyinterval

    我正在尝试安装 python 库 pyinterval 它需要 crlibm C 标头 我已安装该标头 没有错误 但似乎是问题的根源 当我跑步时 sudo easy install pyinterval 我得到以下信息 Searching
  • 如何针对 Heroku 路由器的代理/缓冲情况优化 uWSGI?

    我在 Heroku 的生产中使用 uWSGI 已有一年多了 它似乎比 Gunicorn 处理所有事情都要好得多 随着我们的流量扩大 我试图更好地理解heroku的路由器和uWSGI之间的接口 以优化和防止问题 但它对我来说仍然相当不透明 我
  • 如何在不使用pygame的情况下检测按键事件和按键按住事件

    我目前正在寻找一个能够检测 监视键盘的库 我的目的是检测何时按下某个键 以及当它发生时应该发生一些事情 大多数 SO 帖子建议使用 pygame 但我发现它有点太多了 涉及一个像这样的库来完成这个简单的任务 我也尝试过pynput 这导致只
  • 如何从数据存储区刷新 NDB 实体?

    我希望能够在我的代码调用的测试中断言Model put 对于已修改的实体 不幸的是 似乎正在进行一些缓存 例如以下代码 from google appengine ext import ndb class MyModel ndb Model
  • 如何有效地找到两个轮廓集之间的所有交点

    我想知道找到两组轮廓线之间所有交点 舍入误差 的最佳方法 哪种方法最好 这是示例 import matplotlib pyplot as plt import numpy as np x np linspace 1 1 500 X Y np
  • 视频的 EXIF 之类的东西

    有没有从视频文件中获取信息的标准方法 对于图像 我们有 EXIF 数据 可用于获取有关图像文件的日期 时间 大小等信息 我想知道视频是否也有这样的东西 用例是 我有很多用数码相机拍摄的视频 我想将它们重命名为更有意义的名称 例如 YYYY
  • 如何使用 BeautifulSoup 排除表中的某些行?

    我已经从表格中获得了所需的数据 但不想要各个玩家统计数据之间的缩写 Rk Pos Name 等 如何在保留所需数据的同时排除这些数据 包含缩写的行被归类为 thead 但我不知道如何使用该信息来跳过它 我知道玩家的数据都被压缩在一起 但现在
  • 从 FTP 服务器上的 ZIP 存档读取文件,无需下载到本地系统

    我在 FTP 服务器上的目标文件是 ZIP 文件 CSV 位于更远的两个文件夹中 我如何才能使用 BytesIO 让 pandas 读取 csv 而无需下载它 这是我到目前为止所拥有的 ftp FTP FTP SERVER ftp logi
  • python中matlab find函数的替换

    我正在尝试寻找合适的python函数来替代matlabfind在我的脚本和一些谷歌搜索中我看到np where 大多数时候都能解决目的 但在双重条件的情况下 我有不同的输出 有人可以告诉我这种方法有什么问题以及如何继续吗 示例代码和差异如下
  • 由 asyncio.new_event_loop 创建的事件循环挂起

    以下代码只是挂起而不打印任何内容 import asyncio async def foo loop print foo loop stop loop asyncio new event loop asyncio ensure future
  • 从线程队列中获取所有项目

    我有一个线程将结果写入队列 在另一个线程 GUI 中 我定期 在 IDLE 事件中 检查队列中是否有结果 如下所示 def queue get all q items while 1 try items append q get nowai
  • 在 Django 中执行模型创建代码

    我想在 Django 模型首次创建时执行一些代码 之后 每当保存它时 我想执行一些其他代码 第二个任务可以通过重写 save 方法轻松完成 我怎样才能完成第一个任务 延伸sdolan https stackoverflow com user
  • 从 NumPy、matplotlib 包导入 python 子模块有什么区别[重复]

    这个问题在这里已经有答案了 当我尝试使用时pyplot from matplotlib import matplotlib print matplotlib pyplot just checking 它给了我AttributeError m

随机推荐

  • __func__ C++11 函数的局部预定义变量,无法编译

    The func 函数的 C 11 本地预定义变量无法在使用默认内置 Visual Studio 2012 v110 编译器或 2012 年 11 月 CTP v120 CTP Nov2012 编译器的 Visual Studio 2012
  • 将选项 [keepaspectratio=true, scale = 0.75] 添加到 Sweave 中的 \includegraphics{}

    我有以下 R 代码 lt
  • Android - 推送通知已开启?

    如何以编程方式检查用户是否在应用程序设置中关闭推送通知 我可以直接从应用程序打开应用程序设置意图来提示用户将其打开吗 Thanks 假设您指的是 Google Cloud Messaging 因为您使用的是 android 和推送通知标签
  • PHP 请求生命周期

    好吧 我对 PHP VM 的了解还比较幼稚 最近我一直在想一些事情 特别是 Web 应用程序的 PHP 请求生命周期是什么样的 我找到一篇文章here这给出了很好的解释 但我觉得有has更贴近故事 根据文章的解释 每次向服务器发出请求时都会
  • 如何在VBA中使用列/行索引作为范围

    喜欢使用Cells 1 1 代替Range A1 在 VBA 中使用列 行索引作为范围的最佳方法是什么 我想出了两种解决方案来表示 Range A A Range Cells 1 1 Cells Columns 1 Rows count 1
  • 如何解释 ELF 可执行文件中的动态符号表?

    我正在考虑解释动态符号表 dynsym 的 ELF 可执行文件 我可以成功解释符号表 symtab 每个符号 16 个字节 使用value属性来表示符号的地址和name属性表示字符串开头的偏移量 strtab部分 但我无法解释动态符号表 d
  • C#:如何从资源文件加载光标?

    我已将文件 x ani 导入到资源文件Resources resx 中 现在尝试使用 ResourceManager GetObject aero busy ani 加载该文件 Cursor Current Cursor Resources
  • ASP.Net MVC 中的线程安全

    我怀疑这也适用于一般的 ASP Net 但我不确定 如果我在控制器上有一个操作方法 比如 MyController DoSomethingExciting 并且三个客户端 同时 点击它 那么它本质上是线程安全的 还是我需要做一些事情来确保三
  • Objective C:我的自定义 -init 方法没有被调用

    我有一个从 UIView 派生的类 我想为其创建一个 init 类 如下所示 id init if self super init my initializations here return self 不幸的是 我知道 init 没有被调
  • 如何在 Apache 2.x 中使用 mod_deflate 预压缩文件?

    我通过 apache 提供所有内容Content Encoding zip但这是动态压缩的 我的大部分内容都是磁盘上的静态文件 我想预先对文件进行 gzip 压缩 而不是每次请求时都对其进行压缩 我相信 这是一件事 mod gzip在 Ap
  • 高效的Python IPC [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在Python3中制作一个应用程序 它将分为batch and gui部分 Batch负责处理逻辑和gui负责显示它 Which 进程间通信 I
  • 如何将微调器添加到 ActionBar?

    我试图让我的微调器作为操作栏下拉列表项工作 但我似乎根本无法实现它 在谷歌搜索后没有太多关于此的教程 我认为它与 setListNavigationCallbacks 有关行代码 我只是不知道如何从该行开始工作 setup action b
  • 倒计时器 - iPhone [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我想显示倒计时器 我有开始日期和结束日期 我需要显示剩
  • python中大数的阶乘

    这是我的阶乘方法 def factorial n Returns factorial of n r 1 for i in range 1 n 1 r i return r 我认为这非常简单 但我猜你可以做得更有效 因为像 100000 这样
  • 为什么当Windows服务停止时调用base.OnStop()?

    我正在创建一个 C Net Windows 服务 想知道您是否总是需要调用base OnStop 在服务的OnStop 方法以及为什么 protected override void OnStop threadRunning false t
  • 为什么要将 stdin、stdout 和 stderr 设置为单个 fd?

    我从 APUE 看到了这个代码片段 dup2 fd 0 dup2 fd 1 dup2 fd 2 if fd gt 2 close fd 在我的理解中 它使 stdin stdout 和 stderr 都指向 fd 它说很多程序都包含此代码
  • Rails Accepts_nested_attributes 计数验证

    我有三个型号 销售 商品和图像 我想验证创建销售时 每个销售至少有三张照片和一件或多件商品 实现这一目标的最佳方法是什么 销售模式 class Sale lt ActiveRecord Base has many items depende
  • 如果我点击此处地图中的不同标记,如何删除以前的信息气泡?

    下面是我添加信息气泡的代码 我想在单击 点击 不同的标记后删除当前的信息气泡 function addInfoBubble map var group new H map Group map addObject group add tap
  • Sprite Kit - 将两个物理体添加到一个 SKNode

    是否可以将两个 或更多 SKPhysicsBody 添加到一个 SKNode 中 与此类似的东西 物理编辑器的示例因为角色的头部应该与球碰撞 所以顶部应该是圆形的 此外 球不得穿过球员 您知道如何实现这一目标吗 As the physics
  • 重复的键值违反了 django 中的唯一约束

    我有在 django 中创建新用户的功能 如下所示 def initialize username password email title firstName lastName telephoneNumber mobileNumber s