0
我重新提出这个问题,但这次使用了不同的框架。我有两个模型:用户和书籍与M2M关系。当关系存在时,我希望Book有一个属性“read”,即True。这可能在SQLAlchemy中吗?多对多关系SQLAlchemy(不存在关系exsist属性)
我重新提出这个问题,但这次使用了不同的框架。我有两个模型:用户和书籍与M2M关系。当关系存在时,我希望Book有一个属性“read”,即True。这可能在SQLAlchemy中吗?多对多关系SQLAlchemy(不存在关系exsist属性)
看看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语句:
if mybook.read:
print 'very popular book indeed'
另外,您可以只需添加一个计算(只读属性),但会将所有用户加载到会话中:
@property
def read(self):
return len(self.books)!=0
谢谢指针 – Timtim 2010-03-15 18:45:57