вылетает ошибка
TypeError: Boolean value of this clause is not defined.
Подскажите, что я делаю не так?
Гибридное свойство состоит из двух вещей: 1. обычное свойство. Применяется для вычисления значний по питоновской модели. В этом случае никакие запросы в БД не делают 2. expression. Применяется в запроасх в БД. Собственно должно возвращать конструкцию, которую можно использовать в запросах и вызывается на классе, а не на экземпляре
Пример: @hybrid_property def public_available(self): return not self.archived and self.owner_available @public_available.expression def public_available(cls): return and_( not_(cls.archived), cls.owner_available.is_(True), )
не очень понял. В другой таблице вот такая конструкция работает. @hybrid_property def free_places(self): customers_with_payment = [] for customer_card in self.customer_cards: for lesson in customer_card.lessons: if lesson.payment_status == True: customers_with_payment.append(lesson.customer_card_id) customer_count = len(set(customers_with_payment)) return self.capacity - customer_count
потому что ты по факту реализовал обычное свойство
А как мне реализовать сравнение дат?
А как бы ты это без проперти сделал?
типо в запросе через case when?
Обсуждают сегодня