Hi all, Is there way to use Column.onupdate conditionally? For example, say I have:
class A(Base): foo = Column(String) bar = Column(String) foo_updated = Column(DateTime, onupdate=update_fn) # Should only update when foo is updated def update_fn(context): if ...: # How can I check if only foo was updated? return datetime.now() else: return ... # How can I say to not update? Is there a way to define update_fn to only update foo_updated when foo changes? I can look at context.get_current_parameters() to see what columns are being used in the compiled statement, but it doesn't explicitly say which columns are the ones actually being updated; for example, if I have A.query.filter(A.bar == 'test').update({A.foo: 'new'}, synchronize_session=False) then context.get_current_parameters will return a dict with keys for both 'bar' and 'foo', although it looks like it suffixes the filter param with a '_1' - is that something I can rely on to know if a column is used as a filter instead of an update? And beyond that, is there a way I can specify to not update the column? Alternatively, is there another approach recommended to doing this? Thanks! -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/b66e89c9-6618-4600-9381-182fa101f5b6%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.