我有一個User
模型,主鍵user_id
和一個獨特的username
。如果我知道user_id
,我使用session.query(User).get(user_id)
。什麼是該屬性不是主鍵時的等效查詢,如session.query(User).get(username=username)
?什麼是通過非主鍵屬性查詢的慣用方式?
session.query(User).filter_by(username=username).first()
如果找不到行,還會返回None
,但並未明確說明該查詢永遠不會有多於一行。
我寫了下面的內容,但是這是任何人經常在代碼中作爲助手實現的東西嗎?
try:
user = session.query(User).filter_by(username=username).one()
except (NoResultFound, MultipleResultsFound):
user = None
不,你的回答沒有幫助@davidism。你改變了我的問題以符合你的答案。我並不是在尋找一種「便捷的方式來實現這個」,我已經爲你編輯過的東西提供了一個解決方案。我要求的是在這種情況下的常見做法。 – Oin
我認爲你需要解釋爲什麼你需要明確說明不能有多行。明確給誰? –
@Oin我更新了我的答案,希望能夠回答你的直接問題,請澄清你的問題,如果這不是你問的問題。 – davidism