【问题标题】:Wrap sqlalchemy's filter and filter_by functions in a single function将 sqlalchemy 的 filter 和 filter_by 函数包装在一个函数中
【发布时间】:2013-06-24 11:49:59
【问题描述】:

我想将函数 filter 和 filter_by 包装成一个函数 并根据参数调用filter或filter_by。

函数的行为方式必须使这两者返回相同的东西:

MyModel.get(MyModel.mycolumn == 'value')
MyModel.get(mycolumn='value')

有没有办法做到这一点? 谢谢!

【问题讨论】:

    标签: python sqlalchemy


    【解决方案1】:

    我认为你可以根据参数是否作为关键字给出:

    def get(*args, **kwargs):
        if kwargs:
            return query.filter_by(**kwargs)
        else:
            return query.filter(*args)
    

    【讨论】:

    • 我很愚蠢。我试图通过只使用 **kwargs 来做到这一点...... thnx!
    • 更好的可能是return query.filter(*args).filter_by(**kwargs),所以你可以同时通过!
    猜你喜欢
    • 2011-01-08
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 2021-07-10
    • 1970-01-01
    • 2013-05-24
    相关资源
    最近更新 更多