gpt4 book ai didi

python - Sqlalchemy - 根据另一列中的更改更新列

转载 作者:太空宇宙 更新时间:2023-11-03 12:46:38 25 4
gpt4 key购买 nike

我正在使用 sqlalchemy 但发现文档很难搜索。

我有这两列:

    verified = Column(Boolean, default=False)
verified_at = Column(DateTime, nullable=True)

我想创建一个函数来做这样的事情:

    if self.verified and not oldobj.verified:
self.verified_at = datetime.datetime.utcnow
if not self.verified and oldobj.verified:
self.verified_at = None

我不确定把这样的代码放在哪里。我可以将它放在应用程序中,但更希望 model 对象负责此逻辑。

最佳答案

我想你要找的是 Hybrid Property .

from sqlalchemy.ext.hybrid import hybrid_property

class VerifiedAsset(Base):
id = Column(Integer, primary_key=True)
verified_at = Column('verified_at', String(24))

@hybrid_property
def verification(self):
return self.verified_at;

@verification.setter
def verification(self, value):
if value and not self.verification:
self.verified_at = datetime.datetime.utcnow
if not value and self.verification:
self.verified_at = None
# Presumably you want to handle your other cases here

您想根据传入的新值以特定方式更新您的 verified_at 值。使用属性来包装基础值,并且只在适当的时候更新,并且只更新你实际保存在数据库中的内容。

关于python - Sqlalchemy - 根据另一列中的更改更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32706107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com