Это код, у меня есть, и он работает (возвращает все проблемы, заказанные трудом):SQLAlchemy заказ по функции результата
def get_noteworthy_problems(self):
ACategory = aliased(Category)
AProblem = aliased(Problem)
all_prob = DBSession.query(AProblem).filter(
AProblem.parent_id == ACategory.id,
ACategory.parent_id == self.id)
noteworthy_problems = \
sorted(all_prob, key=lambda x: x.difficulty(), reverse=True)
return noteworthy_problems
Но я думаю, что я должен оптимизировать этот код. Есть ли возможность изменить код с order_by
и моей функцией difficulty()
? Моя функция возвращает число. Я пытался что-то вроде:
result = DBSession.query(AProblem).filter(
AProblem.parent_id == ACategory.id,
ACategory.parent_id == self.id).order_by(
AProblem.difficulty().desc())
, но я получаю ошибку TypeError: 'NoneType' object is not callable
.
Могут ли методы с гибридным дескриптором иметь аргументы? – user2290820