簡體   English   中英

將 kwargs 與 filter_by 一起使用(Sqlalchemy)

[英]Using kwargs with filter_by (Sqlalchemy)

所以我目前正在嘗試創建一個動態 function,這將需要 1 kwarg,並在它的 filter_by 中使用它。

這是 function 目前的樣子:

    def Get_from_var(session, **data):
    for entry in data:
        if bool(session.query(Tutor).filter_by(entry=data[entry]).first()):
            return session.query(Tutor).filter_by(entry=data[entry]).first()
        return "No tutor found"

我知道我的 function 只會收到 1 kwarg,所以我不擔心一些奇怪的異常。 但目前看來,兩個 filter_by 函數中的 'entry' 參數都是按字面解釋的,而不是變量? 因為它告訴我“導師沒有財產‘入口’”

這就是我目前的稱呼:

tutor = Tutor.Get_from_var(session, tutor_id=filters["id"])

您可以直接使用filter_by中的**data來獲得正確的結果。

session.query(Tutor).filter_by(**data).first()

** 將您的數據解包為鍵值對並將它們傳遞給 filter_by function。

此外,您可能不想查詢兩次只是為了檢查您的 if 語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM