Python:sqlalchemy报错DetachedInstanceError

sqlalchemy 对象commit之后再使用就会报错

DetachedInstanceError

既然这样,提交后还需要使用,就拷贝一个副本出来

一个思路是

# -*- coding: utf-8 -*-
"""
@File    : sqlalchemy_util.py
@Date    : 2024-01-07
@Author  : Peng Shiyu
"""
from datetime import datetime

from sqlalchemy.orm import class_mapper

from utils import time_util


def to_json(model):
    columns = [column.key for column in class_mapper(model.__class__).columns]

    item = {
   }
    for column in columns:
        item[column] = getattr(model, column)

    return item


def copy(source, target=None):
    """
    属性浅拷贝
    :param source: object
    :param target: Model / dict
    :return:
    """
    if not target:
        if isinstance(source, dict):
            return {
   **source}
        else:
            target = source.__class__()

	# BaseModel 使用 SQLAlchemy 定义
    if isinstance(target, BaseModel):
        for column in class_mapper(source.__class__).columns:
            if hasattr(source, column.key):
                setattr(target, column.key, getattr(source, column.key))

    elif isinstance(target, dict):
        for key in target.keys():
            if hasattr(source, key):
                target[key] = getattr(source, key)

    return target

相关推荐

  1. Python:sqlalchemyDetachedInstanceError

    2024-01-08 11:26:04       53 阅读
  2. IDEA

    2024-01-08 11:26:04       62 阅读
  3. sqoop运行

    2024-01-08 11:26:04       61 阅读
  4. yarn install

    2024-01-08 11:26:04       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-08 11:26:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-08 11:26:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-08 11:26:04       82 阅读
  4. Python语言-面向对象

    2024-01-08 11:26:04       91 阅读

热门阅读

  1. 数据库相关SQL

    2024-01-08 11:26:04       54 阅读
  2. 常用python代码大全-random模块的一些常见用法

    2024-01-08 11:26:04       61 阅读
  3. 【数据库原理】(13)视图的使用

    2024-01-08 11:26:04       54 阅读
  4. C++运算符和表达式

    2024-01-08 11:26:04       55 阅读
  5. 研旭开发板资料下载地址--DSP28335资料

    2024-01-08 11:26:04       55 阅读
  6. HTML5 新元素

    2024-01-08 11:26:04       64 阅读
  7. Python Selenium 4 如何忽略chrome浏览器证书验证

    2024-01-08 11:26:04       58 阅读
  8. 阿里云无影云电脑

    2024-01-08 11:26:04       65 阅读
  9. (洛谷)P5734 【深基6.例6】文字处理软件

    2024-01-08 11:26:04       56 阅读
  10. 牛客 最大序列和 DP

    2024-01-08 11:26:04       63 阅读