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