Пример #1
0
            'id': self.id,
            'account_id': self.account.ext_account_id,
            'cents': self.cents,
            'datetime': self.datetime.isoformat()
        }

    @db.validates('cents')
    def validates_cents(self, key, cents):
        if not isinstance(cents, int):
            try:
                cents = int(cents)
            except (ValueError, TypeError), e:
                raise BadRequest('Cents is not an integer')
        return cents

    @db.validates('datetime')
    def validates_timestamp(self, key, timestamp):
        if not isinstance(timestamp, datetime):
            try:
                timestamp = datetime.strptime(timestamp, '%Y-%m-%dT%H:%M:%S')
            except (ValueError, TypeError), e:
                raise BadRequest('Bad datetime format')
        return timestamp


Account.lifetime_value = db.column_property(
    db.session.query(
        db.func.sum(Charge.cents)
    ).filter(Account.id == Charge.account_id).label('lifetime_value')
)