An error occurred in the current transaction. You can‘t execute queries until the end of the ‘atomic

2023-11-19

问题

如图所示,错误返回结果是An error occurred in the current transaction. You can't execute queries until the end of the 'atomic block

 (这个在django中,用swagger进行调试,自己捕获异常的结果)

分析

字面意思

就是django中从开启事务后,到事务with结束(包含异常)后,执行了数据查询语句。

我代码的基本结构(犯了最底下的两个要点)

class InfoStore(APIView):

    @swagger_auto_schema(******)
    def post(self, request):
        receive_data = request.data

        with transaction.atomic():   # 1 在transaction中去try except自己捕获异常
            # 创建事务保存点
            save_id = transaction.savepoint()
            try:
                if(InfoTest.objects.filter(**)):  # 2 在transaction中执行查询语句
                    # process information
                    info_test = InfoTest()
                    info_test .save()

            except Exception as e:
                transaction.savepoint_rollback(save_id)
                return response_as_json(data={
                        'code': '500',
                        'msg': '服务基本信息数据异常存储',
                        'data': e.__str__()
                    },
                    status=status.HTTP_500_INTERNAL_SERVER_ERROR
                )

            transaction.savepoint_commit(save_id)

            return response_as_json(data={'code': '200', 'msg': 'Success', 'data': 'None'}, status=status.HTTP_200_OK)

 

解决

这里参照官方代码的部分解释:(PS:这里是翻译软件翻译出来的,可能细节不够准确)

主要要点:

1不推荐在with transaction.automic中去捕获异常

2在with transaction.automic中执行查询语句会导致TransactionManagementError

 

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

An error occurred in the current transaction. You can‘t execute queries until the end of the ‘atomic 的相关文章

  • TemplateSyntaxError:“settings_tags”不是有效的标签库

    当我尝试运行此测试用例时 出现此错误 这是在我的 django 应用程序的tests py 中编写的 def test accounts register self self url http royalflag com pk accoun
  • 仅从数据库获取我想要的数据但保留结构

    我正在尝试在 powerbi 上执行此操作 但我想这只是基本的 SQL 我想将我的数据导入到 powerBi 中 但使用一些 id 对其进行过滤 我们以这个例子为例 我与一些公司有数据库 表1 每个公司都有建筑物 表2 每个建筑物有员工 表
  • Mysql为简单频繁查询创建排序索引性能

    我正在处理一个包含大约 400 万条消息条目的 mysql 表 并尝试根据时间戳选择最新的 50 条消息 另一个要求是返回的消息不以固定前缀开头 问题是单个查询大约占用 25 的 cpu 并且最多需要 1 5 秒 该查询经常由多个客户端执行
  • 关于具有自定义损失的 3 输出 ANN 的加权

    我正在尝试定义一个自定义损失函数 它在回归模型中接收 3 个输出变量 def custom loss y true y pred y true c K cast y true float32 Shape batch size 3 y pre
  • 私有属性,但却是一个神秘的领域

    我想将属性设为私有 但带有 pydantic 字段 from pydantic import BaseModel Field PrivateAttr validator class A BaseModel a str I want a py
  • 在 Python 中引发异常的正确方法是什么? [复制]

    这个问题在这里已经有答案了 这是简单的代码 import sys class EmptyArgs StandardError pass if name main The first way to raise an exception if
  • 使用 Popen 打开进程并获取 PID

    我正在开发一个漂亮的小功能 def startProcess name path Starts a process in the background and writes a PID file returns integer pid Ch
  • 在添加数据之前使用 Python gdata 清除工作表中的行

    我有一个 Google 电子表格 我使用 python 脚本和 gdata 库填充值 如果我多次运行脚本 它会将新行附加到工作表中 我希望脚本在填充之前首先清除行中的所有数据 这样每次运行时我都会有一组新的数据脚本 我尝试过使用 Updat
  • 配置 Django 和 Google 云存储?

    I am not使用应用引擎 我有一个在虚拟机上运行的普通 Django 应用程序 我想使用 Google Cloud Storage 来提供静态文件 以及上传 提供媒体文件 我有一个水桶 如何将 Django 应用程序链接到我的存储桶 我
  • MySql如何通过过滤多列来限制多个数字?

    我想从数据库中获取 4 个不同类别的 50 个问题 我想要 4 个不同类别中每个类别的不同数量的问题 我的结果集必须包含第一类 12 个问题 第二类 20 个问题 第三类 10 个问题和第四类 8 个问题 我的问题表中总共有 50 个问题
  • Python:如何“杀死”类实例/对象?

    我希望 Roach 类在达到一定量的 饥饿 时 死亡 但我不知道如何删除该实例 我的术语可能有误 但我的意思是 窗户上有大量 蟑螂 我希望特定的蟑螂完全消失 我会向您展示代码 但它很长 我将蟑螂类添加到策划者类蟑螂种群列表中 一般来说 每个
  • 根据标签位置计算 Pandas DataFrame 的索引

    我正在尝试计算标签的索引Pandas https pandas pydata org DataFrame在每一列中 基本上我有以下内容DataFrame d col1 label1 label2 label3 col2 label2 lab
  • 在一个视图中使用两个模板

    我尝试以两种方式呈现视图中的内容 html 和 csv 下载 我能够做到这一点的唯一方法是使用两种不同的视图 一种用于 html 演示 一种用于 csv 这重复了我的代码 我正在寻找更优雅的解决方案 有什么建议么 这是示例代码 views
  • 如何从 Anaconda 更新 Pandas 以及最后是否可以使用 eclipse

    我已经使用以下文档通过 Anaconda 安装了 Python http www kevinsheppard com images 0 09 Python introduction pdf http www kevinsheppard co
  • 为什么 sql 字段名称中不应该包含逗号?

    人们一直告诉我列名中不应包含空格 我只是想知道 这是为什么 这是我为学校创建的一些数据库表遇到的问题 字段名称包括 Preble 和 Darke 相反 它们需要是 普雷布尔县 俄亥俄州 和 达克县 俄亥俄州 如果它们是行名称 我只需创建一个
  • 混合语言源目录布局

    我们正在运行一个使用多种不同语言的大型项目 Java Python PHP SQL 和 Perl 到目前为止 人们一直在自己的私有存储库中工作 但现在我们希望将整个项目合并到一个存储库中 现在的问题是 目录结构应该是什么样的 我们应该为每种
  • Python 子进程:无法转义引号

    我知道以前曾问过类似的问题 但它们似乎都是通过重新设计参数的传递方式 即使用列表等 来解决的 但是 我这里有一个问题 因为我没有这个选项 有一个特定的命令行程序 我使用的是 Bash shell 我必须向其传递带引号的字符串 它不能不被引用
  • nltk 标记化和缩写

    我用 nltk 对文本进行标记 只是将句子输入到 wordpunct tokenizer 中 这会拆分缩写 例如 don t 到 don t 但我想将它们保留为一个单词 我正在改进我的方法 以实现更精确的文本标记化 因此我需要更深入地研究
  • python:日志记录:我们可以向记录器添加多个过滤器吗?考虑哪一个

    我试图了解 Python 日志记录中的多个过滤器 一个在配置中定义 另一个在代码中定义 如何工作 我正在开发一个 Django 项目 下面是我在 settings py 中的记录器配置 我的目标是switch on and switch o
  • 处理错误“TypeError: Expected tuple, got str”将 CSV 加载到 pandas 多级和多索引 (pandas)

    我正在尝试加载 CSV 文件 这个文件 https drive google com file d 13a eVeSzy6HkhffQw32S57U hm5YCj0 view usp sharing 创建一个多索引多级数据帧 它有5 五 指

随机推荐

  • OpenAI最新发布通用人工智能路线图!AGI比想象中来得更快!

    点击下方卡片 关注 CVer 公众号 AI CV重磅干货 第一时间送达 点击进入 gt 计算机视觉 微信技术交流群 转载自 机器之心 编辑 泽南 小舟 通用人工智能的出现可能只是技术发展历程中的一个小节点 因为 AGI 或许可以加速自身的进
  • 点云/网格模型的体积计算

    点云体积计算 有时用激光扫描设备扫描零件或者用无人机进行测量后会想知道它们的体积 比如下面的土堆 如果扫描得到的数据是一系列三维点云 那么体积就比较难求 因为如何定义物体的边界比较困难 一种方法是提取三维点云的凸壳 包络体 然后再进行计算
  • 第五章 数据清洗

    5 1数据去重 5 1 1完全去重 点击 获取字段 配置csv文件输入的属性 Name Gender City 配置唯一行属性 选择要去重的属性 Name Gender City 运行结果 完全去重成功 5 1 2不完全去重 将文本分隔符替
  • 支付宝短视频平台创作分成激励项目

    没想到支付宝也开通了中视频计划 这波羊毛算是蒿定了 最近啊 马爸爸火速上线了支付宝创作分成计划 明显就是抄的抖音中视频计划 目前还在内测阶段 补贴的力度非常大 错过的话就只能拍大腿了 看到短视频这么的火爆 巨头大佬们都想分一杯羹啊 阿里也不
  • Linux下MySQL启动、停止、重启的几种方式

    一 启动 1 使用service 启动 service mysqld start 2 使用 mysqld 脚本启动 etc inint d mysqld start 3 使用 safe mysqld 启动 safe mysqld 二 停止
  • 互联网产品上线流程,及面试题分类

    一 基础情况 问题1 自我介绍 3mins 与自我介绍 1min 问题2 为什么你要来这个行业 问题3 为什么你要来这个岗位 问题4 为什么你能胜任这份工作 问题5 为什么你要离职 问题6 过往经历STAR故事描述 问题7 你的职业规划是什
  • php mes代码,完整MES代码(含客户端和server端)

    实例简介 完整的代码 带数据库文件 包含客户端 服务端 实例截图 核心代码 MES 源代码 MES 源代码 MES 源代码 dll AjaxControlToolkit dll AspNetServer dll AxInterop CELL
  • el-form 校验单个字段

    单个校验 核心为 validateField 而非validate
  • 关于编译器生成默认构造函数的理解

    构造函数 构造函数是创建类类型对象时 由编译器自动调用 用来初始化对象的函数 它保证每个数据成员都有一个合适的初始值 并且在对象的生命周期内只调用一次 函数名与类名相同 无返回值 构造函数可以重载 什么是默认构造函数 无参的构造函数 全缺省
  • JAVA中的while do-while循环以及for循环的深刻理解 入门 小白必看

    循环 循环 循环 循环的作用 提出问题为什么需要循环 解决问题循环的出现 while 前序 循环 while循环的语法与流程以及细节 do while 后序循环 do while循环的语法和流程 while和do while 之间的区别 f
  • 人工智能顶会顶刊以及SCI,IF,核心,分区

    人工智能顶会顶刊以及SCI IF 核心 分区 标签 常识 刚上研究生的时候 老师总会让大家看论文 并且还要求要看好文章 要看顶会或者顶刊上面的文章 但是刚开始就不知道什么是顶会或者顶刊 所以这里整理了一下在人工智能方面的顶刊或者顶会 比如c
  • HacksudoAliens

    HacksudoAliens arp scan interface eth0 192 168 1 0 24 nmap sC sV p sT 192 168 1 251 sS sT sA sW sM TCP SYN Connect ACK W
  • Java自动生成bean、dao、service、impl、controller(JPA初版)

    关自动生成代码我是这么想的 初步 目录 一 拿到所有表名 列名 列类型数据 C3P0连接数据库并获取所需数据 所需数据对象 测试拿到的数据 结果 二 用FreeMarker模板生成对应JPA架构Java文件 编写模板 bean ftl be
  • C语言实验——打印金字塔

    Problem Description 输入n值 打印下列形状的金字塔 其中n代表金字塔的层数 Input 输入只有一个正整数n Output 打印金字塔图形 其中每个数字之间有一个空格 Sample Input 3 Sample Outp
  • 美创科技发布“韧性”数据安全防护体系框架

    4月13日 美创科技数据安全产品架构升级发布会顺利举办 会上 美创重磅发布 韧性 数据安全防护体系框架 全新数据安全框架 以 资产 为中心 由内而外 以 看见 基石 旨在通过构建 弹性和韧性 可见性 适应性进化 的数据安全防护能力 帮助用户
  • Python打印输出数组中全部元素的方法

    学习Python的人都知道数组是最常用的的数据类型 为了保证程序的正确性 需要调试程序 因此 需要在程序中控制台中打印数组的全部元素 如果数组的容量较小 例如 只含有10个元素 采用print命令或print函数可以答应出数组中的每个元素
  • 记一次挖矿病毒应急处置全过程&挖矿处置基本操作

    记一次挖矿病毒应急处置全过程 挖矿处置基本操作 一 处置过程 1 查看第一位的pid号 32535 2 进入 tmp X11 unix 目录 其中 11 文件中写的是32535 01 文件中写的是守护进程pid号10092 目录里的文件不一
  • 【Vue】Vue基础自用笔记&Day03_①Vue生命周期②Vue网络请求③Vue动画

    Vue基础 Day03 1 Vue生命周期 this nextTick 方法 2 Vue网络请求 vue resource Axios 3 Vue动画 使用CSS创建动画 或者使用第三方动画库 animate css 使用JS创建动画 使用
  • var 的变量提升

    var 的变量提升 var 定义的变量的定义时存在变量提升现象 console log a undefined var a 10 console log a 10 原理 js 引擎在渲染代码时 将变量声明部分和函数声明部分提升到函数的顶部
  • An error occurred in the current transaction. You can‘t execute queries until the end of the ‘atomic

    问题 如图所示 错误返回结果是An error occurred in the current transaction You can t execute queries until the end of the atomic block