如何在单个事务中保存多个 django 模型?

2024-01-09

在我看来,我将数据保存在多个模型中:

def myview(request):
    #do some processing
    model1.save()
    model2.save()

如何确保有回滚model1.save()以防万一model2.save()引发错误?或者如何在两个模型都成功保存后才提交?

换句话说,“如果两个 save() 都成功,则仅保存 model1 和 model2”,或者“在事务内执行这两个保存”。


Use an 原子事务 https://docs.djangoproject.com/en/1.8/topics/db/transactions/#django.db.transaction.atomic:

原子性是数据库事务的定义属性。原子允许我们创建一个代码块,在其中保证数据库的原子性。如果代码块成功完成,则更改将提交到数据库。如果出现异常,则回滚更改。

例子:

from django.db import transaction

with transaction.atomic():
    model1.save()
    model2.save()

and

from django.db import transaction, IntegrityError

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

如何在单个事务中保存多个 django 模型? 的相关文章

  • TEST 镜像默认数据库但没有数据

    我正在尝试对我的 Django 应用程序进行一些测试 我使用了数据库镜像作为测试数据库 当我尝试运行一些测试时 默认数据库 中的数据似乎在镜像测试数据库中不可用 default sqlite ENGINE django db backend
  • Django 在 rss feed 中指定频道图像的方式

    在 rss feed 中指定频道图像的 django way 是什么 我可以通过滚动我自己的 xml 来手动完成此操作 但我正在寻找一种正确的方法来完成此操作 Editdobrych 的解决方案在这里不太适用 因为我具体询问的是 RSS 而
  • 如何将 max_length 添加到 allauth 用户名

    我使用 Django allauth 作为我的 Django 站点的用户帐户框架 文档显示有一个ACCOUNT USERNAME MIN LENGTH http django allauth readthedocs io en latest
  • 从 Django 调用 Postgres SQL 存储过程

    我正在开发一个带有 Postgresql 数据库的 Django 项目 我编写了一个可以在 Postgres 上完美运行的存储过程 现在我想从 Django 1 5 调用该存储过程 我已经编写了代码 但它提示错误 CREATE FUNCTI
  • 如何覆盖 Django 的默认管理模板和布局

    我正在尝试覆盖 Django 的默认模板 现在只有base site html 我正在尝试更改 django 管理文本 我做了以下事情 我在我的应用程序目录中创建了一个文件夹 opt mydjangoapp templates admin
  • Django通用外键和select_相关

    我试图使用与通用外键的关系来选择模型 但它没有按预期工作 我认为用代码可以更好地说明和理解 class ModelA models Model created models DateTimeField auto now add True c
  • Django Rest Framework 删除 csrf

    我知道有关于 Django Rest Framework 的答案 但我找不到解决我的问题的方法 我有一个具有身份验证和一些功能的应用程序 我向其中添加了一个新应用程序 它使用 Django Rest Framework 我只想在这个应用程序
  • 将 python 字典中的数据呈现给 django 模板。

    我有一本字典 data sok 1 10 sao 1 10 sok sao 2 20 我如何 循环字典 将我的数据作为 HTML 表呈现给 Django 模板 这种格式为表格 author qty Amount sok 1 10 sao 1
  • 在 django 1.7 上的数据迁移中,直到原子块结束后才能执行查询

    我有一个相当长的数据迁移 我正在执行此操作来纠正早期的错误迁移 其中某些行创建不正确 我试图根据旧列将值分配给新列 但是 有时这会导致完整性错误 发生这种情况时 我想扔掉导致完整性错误的那个 这是一个代码片段 def load data a
  • 如何删除 Django 中的模型元排序或从内置管理器获取原始查询集?

    我有一个模型 它使用元排序属性来确保使用它的所有视图以相同的顺序显示内容 但是 我有一种方法需要使用distinct 方法 应用订购后此方法不起作用 是否有一种内置方法可以在应用排序之前检索原始查询集 或者我是否需要编写一个自定义管理器类来
  • Django-tables2 列总计

    我正在尝试使用此总结列中的所有值文档 https github com bradleyayers django tables2 blob master docs pages column headers and footers rst 但页
  • 按外键字段的计数排序?

    我有一个用户模型和一个提交模型 每个提交都有一个名为 user subscribed 的外键字段 用于上传该提交的用户 class Submission models Model uploaded by models ForeignKey
  • 如何使用 Django HttpResponseRedirect 提供规范 URL?

    这个问题和我刚才问的很相似href 我可以获取 Google 搜索结果来使用 显示最终重定向网址吗 https stackoverflow com questions 22728433 href can i get google searc
  • 导入错误:没有名为 django 的模块

    我使用的是centos Linux 我有 python 2 6 和 django 现在我升级到 python 2 7 Python 2 6 位于 usr lib python2 6 Python 2 7 位于 usr local lib p
  • Django - 从缓存的查询中填充模型实例相关字段

    情况相同Django prefetch children 相关的children https stackoverflow com questions 55201573 django prefetch related children of
  • django-orm:如何更新一对一关系字段值

    模型 py class Area models Model area name models CharField max length 255 null False blank False description models TextFi
  • 在 django 中自定义项目和应用程序模板

    我想自定义运行时创建的文件和文件夹 python manage py startapp appname 我发现一遍又一遍地做一些事情 我认为如果在创建新应用程序时存在我的自定义功能 那就太好了 您知道创建应用程序时可以在哪里自定义默认文件吗
  • Django 独特的不工作

    我在从查询中过滤掉重复项时遇到问题 我正在使用 Django 1 4 和 Postgres 8 4 13 我在我的模型对象上使用这个查询 它是一个 jquery 自动完成 term request GET get term field re
  • 无法导入QUERY_TERMS

    我正在运行一个网站Python and Django Django filters 2 1 installed Django 2 1 installed 当我运行时 我收到以下错误 importError Could not import
  • UnicodeDecodeError:部署到 Heroku 时,“utf-8”编解码器无法解码位置 0 中的字节 0xff

    我尝试在heroku上部署我的简单django项目 但我不明白如何解决这个问题 这是git push heroku master remote Traceback most recent call last remote File tmp

随机推荐

  • PHP 和字符串中的反斜杠

    谁能告诉我这里发生了什么
  • 为什么 argc 是“int”(而不是“unsigned int”)?

    为什么命令行参数计数变量 传统上argc an int而不是unsigned int 这有技术原因吗 当我试图摆脱所有已签名的未签名比较警告时 我总是忽略它 但从来不明白为什么它是这样的 事实上 最初的 C 语言是这样的 默认任何变量或参数
  • OpenOPC Gateway 在 OsX 或 Linux 中运行使用客户端

    我用OpenOPC图书馆python https sourceforge net projects openopc https sourceforge net projects openopc 在网关模式 网关在 Windows 上运行 客
  • 在事务中执行多个语句之前准备它们?

    在执行之前准备多个语句可以吗 db PDO connection info cats stmt db gt prepare SELECT FROM cats dogs stmt db gt prepare SELECT FROM dogs
  • Microsoft.AspNetCore.Mvc.Controller 中的 ActionContext 消失了

    我在 Microsoft AspNetCore Mvc Controller 中找不到 ActionContext 当我将版本更改为 AspNetCore 1 0 0 preview1 后 这是控制器类 更改后 并从 微软 AspNet M
  • 如何配置 Spring Boot Kafka 客户端使其不尝试连接

    这与Spring Boot Kafka 客户端有 断路器 吗 https stackoverflow com q 69914621 2886891 但我仍然认为这是一个不同的问题 我们需要配置 Spring Boot Kafka 客户端 以
  • Java中JSONPath的基本使用

    我有 JSON 作为字符串和 JSONPath 作为字符串 我想使用 JSON 路径查询 JSON 以字符串形式获取结果 JSON 我认为Jayway 的 json path https code google com p json pat
  • Javascript 原型链接超类构造函数和方法调用

    我是 JavaScript 世界的新手 当我尝试原型链继承时 我遇到了这个奇怪的问题 我有3节课 class parent function parent param 1 this param param 1 this getObjWith
  • 使用 Emacs 作为 IDE

    目前 当我使用 C 或 C 进行编码时 我使用 Emacs 的工作流程涉及三个窗口 右侧最大的包含我正在使用的文件 左侧分为两部分 底部是一个 shell 我用它来输入编译或 make 命令 顶部通常是我在工作时想要查阅的某种文档或自述文件
  • 如何将字符串转换为 const class int 值?

    我有变量 String colorName BLUE 我想在 Android 应用程序中将此颜色设置为油漆 它应该是这样的 paint setColor Color colorName 但我收到错误警告 因为 setColor 函数的参数应
  • Spring RestTemplate,在解析为 Json 之前拦截响应

    我有一个 REST api 它在正文内容中响应一些额外的非 JSON 数据 这破坏了 RestTemplate 和 jackson 的使用 我可以在解析之前拦截http响应正文吗 我正在使用 RestTemplate getForObjec
  • 如何将不以特定模式开头的行连接到 UNIX 中的上一行?

    请查看下面的示例文件和所需的输出 以了解我正在寻找的内容 它可以通过 shell 脚本中的循环来完成 但我正在努力获得一个awk sed一艘班轮 示例文件 txt These are leaves These are branches Th
  • std::vector 向下调整大小

    C 标准似乎没有声明任何有关容量的副作用resize n with n lt size or clear 它确实对摊余成本做出了声明push back and pop back O 1 我可以设想一种执行通常类型的容量更改的实现 ala C
  • iPhone 应用程序启动

    如何让我的 iPhone 应用程序每次都在同一位置启动 即我的 主 屏幕 我不希望用户回到上次玩游戏时的位置 就在游戏过程中 但这就是正在发生的事情 预先感谢您的任何提示 您需要设置UIApplicationExitsOnSuspend输入
  • asp-for 和 if 条件在同一组件中

    我正在尝试在组件内使用 asp for 和条件 但我找不到方法来做到这一点 这是我的代码
  • 设置定时器问题

    我的双核机器上运行以下代码 当我在同一台 PC 上运行该应用程序的一两个实例时 我的正确计时分辨率为 100 毫秒 然而 当我在同一台 PC 上运行同一应用程序的 3 个实例时 计时分辨率超过 100 毫秒 是否有可能使应用程序的 3 个实
  • Magento XML 用简单的英语构建?

    我一直在阅读有关 Magento 的内容 并且了解其请求周期的核心流程等 基于配置的 MVC 和类重写等 但是 我似乎找不到关于具体细节的好文章 文档 特别是当涉及到为自定义模块等构建 config xml 所需的不同节点时 或者 XML
  • 将不同版本的 python 与 virtualenvwrapper 一起使用

    我使用 Macports 在我的 Mac 上安装了各种版本的 python 当我选择 python 2 7 通过 port select python python27 virtualenvwrapper 工作完美 但是如果我选择另一个版本
  • 使用 boost 创建具有自定义环境的子进程

    文档boost https www boost org doc libs 1 64 0 doc html process html没有提供任何使用自定义环境创建子进程的示例process child 给出了一个例子process syste
  • 如何在单个事务中保存多个 django 模型?

    在我看来 我将数据保存在多个模型中 def myview request do some processing model1 save model2 save 如何确保有回滚model1 save 以防万一model2 save 引发错误