【发布时间】:2021-08-27 10:23:40
【问题描述】:
我正在尝试从在旅途中创建的模型对象中删除一个属性,但这样做似乎有一些问题。所以,到目前为止,我已经搜索了所有地方,包括 SQLAlchemy 文档和它的一些代码,以找到潜在的修复方法,但找不到。
以下代码适用于 python 类,但不适用于继承自 declarative_base 的类
for row in data:
model_obj = DBEngine.models.User()
[setattr(model_obj, key, value) for key, value in row.items()]
# below line doesn't work as expected, instead of deleting the
# attribute it just sets the value of attribute to None
delattr(model_obj, 'localedit')
session.add(model_obj)
用户模型
Base = declarative_base()
class User(Base):
__tablename__ = 'user'
id = Column('id', Integer, primary_key=True)
localedit = Column('localedit', String, default="0000-00-00 00:00:00")
我也尝试过使用del 删除属性,但它与delattr 做的工作相同,我猜del 和delattr 在后台调用相同的代码。
我完全被这个问题难住了,想不出任何办法。 任何帮助将不胜感激,谢谢。
【问题讨论】:
标签: python python-3.x sqlalchemy orm