Расширение базового запроса свойства - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь выяснить, есть ли способ расширить базовый запрос. У меня есть получатель, который будет возвращать запрос в моем 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

Когда я вызываю это из представления, оно работает правильно и отображает правильный результат.

Проблема, с которой я столкнулся, заключается в том, что я пытаюсь реализовать раскрывающийся фильтр, который расширит вышеуказанный базовый запрос геттера, я пробовал так много вещей, и он просто не будет работать.

Так что мой выпадающий список будет с двумя вариантами фильтра по

  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'

Так, как я могу расширить свой запрос геттера выше и добавить к нему материал?

...