Я пытаюсь выяснить, есть ли способ расширить базовый запрос. У меня есть получатель, который будет возвращать запрос в моем 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
Когда я вызываю это из представления, оно работает правильно и отображает правильный результат.
Проблема, с которой я столкнулся, заключается в том, что я пытаюсь реализовать раскрывающийся фильтр, который расширит вышеуказанный базовый запрос геттера, я пробовал так много вещей, и он просто не будет работать.
Так что мой выпадающий список будет с двумя вариантами фильтра по
- дата создания
- идентификационный номер
Основываясь на выпадающем списке выбора пользователя, я присоединяюсь, фильтрую или расширяю вышеуказанный базовый запрос
Я попытался сделать приведенный выше запрос 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'
Так, как я могу расширить свой запрос геттера выше и добавить к нему материал?