2024-04-18 23:25:43 发布
网友
我问这个问题,但这次的框架不同。我有两种型号:用户和书籍,有M2M关系。我希望书有一个属性“read”,当关系存在时,该属性是真的。这在SQLAlchemy中可能吗?
看看SQL Expressions as Mapped Attributes。像这样的东西应该对你有用:
Book.read = column_property( select( [func.count(user_to_book_table.c.user_id)], user_to_book_table.c.book_id == book_table.c.id ).label('read') )
即使它不是布尔值,您仍然可以在IF语句中正确使用它:
或者,您可以在Book对象上添加一个计算的(只读)属性,但这会将所有用户加载到会话中:
@property def read(self): return len(self.books)!=0
看看SQL Expressions as Mapped Attributes。像这样的东西应该对你有用:
即使它不是布尔值,您仍然可以在IF语句中正确使用它:
^{pr2}$或者,您可以在Book对象上添加一个计算的(只读)属性,但这会将所有用户加载到会话中:
相关问题 更多 >
编程相关推荐