Python SQLAlchemy 属性事件 - 如何检查旧值等于 NO_VALUE?

1 python sqlalchemy flask-sqlalchemy

SQLAlchemy 的官方文档指出:

\n\n
\n

oldvalue \xe2\x80\x93 被替换的先前值。这也可能是\n 符号NEVER_SETNO_VALUE。如果侦听器已注册 active_history=True,则如果现有值当前已卸载或过期,则将从数据库加载该属性的先前值。

\n
\n\n
from sqlalchemy import event\n\n# standard decorator style\n@event.listens_for(SomeClass.some_attribute, \'set\')\ndef receive_set(target, value, oldvalue, initiator):\n    "listen for the \'set\' event"\n\n    # ... (event handling logic) .\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的问题是如何检查旧值是否等于符号NO_VALUE

\n\n

我使用if oldvalue == symbol(NO_VALUE) 但它给了我错误。

\n\n
\n

类型错误:“模块”对象不可调用

\n
\n

小智 6

使用

from sqlalchemy.orm.base import NO_VALUE
if oldvalue is NO_VALUE:
    //login here
Run Code Online (Sandbox Code Playgroud)

为我工作