扩展基本属性查询

时间:2018-11-04 21:54:36

标签: python python-3.x sqlalchemy getter-setter

我正在尝试确定是否有扩展基本查询的方法。我有一个getter,它将在我的models.py中返回查询,如下所示:

models.py

...
...
@property
def my_query(self):

    list = session.query(Table1) \
        .join(Table2.id) \
        .join(Table3.name) \
        .filter(Table1.id == self.id) \
        .filter(table2.status != 2) \

    return list

当我从视图中调用它时,它可以正常工作并显示正确的结果。

我遇到的问题是,我正在尝试实现一个下拉过滤器,该过滤器将扩展上面的getter基本查询,我已经尝试了很多事情,但它根本无法正常工作。

所以我的下拉列表将是两个选项

  1. 创建日期
  2. 身份证号码

根据用户选择下拉列表,我将加入,过滤或扩展上面的基本查询

我尝试将上述查询设为label,然后向其中添加查询,但是没有运气。我也研究了subquery,但是当我尝试仅向my_query添加过滤器并再次重新查询时,它给了我一个错误。

def my_query_filter(self, query):
    session.query(self.my_query.filter(...))  #AttributeError: 'Query' object has no attribute 'is_clause_element'

    #or even without filter
    session.query(self.my_query)  #AttributeError: 'Query' object has no attribute 'is_clause_element'

那么我该如何在上面扩展我的getter查询并向其添加内容呢?

0 个答案:

没有答案