0
我想弄清楚如何編寫一個鉤子來查詢數據庫之前從ORM插入一行。我希望實現類似於此:SQLAlchemy ORM之前插入鉤子
class Table(Base):
id = Column(Integer, primary_key=True)
value = Column(Integer, nullable=False)
def before_insert_hook(self, session):
"""Some arbitrary queries and code. For example:"""
if self.value is None:
self.value = session.query(func.avg(Table.value))\
.filter(Table.value > 100).scalar()
我在大約ORM事件和這樣的SQLAlchemy的文檔在讀,但我無法弄清楚如何使用它們來實現這一目標。
也許這可以幫助你:http://stackoverflow.com/questions/9706059/setting-a-default-value-in-sqlalchemy –
如果」重新使用PostgreSQL,理論上這可以使用CTE(WITH AS ... INSERT ...)來實現。但它看起來像通過SQLAlchemy還不可能,請參閱公開的問題https://bitbucket.org/zzzeek/sqlalchemy/issue/2551。 –
malthe