SELECT net FROM nets WHERE net >> '10.0.0.0/8'
Можно как-нибудь такие запросы в sqlalchemy перевести? А то костыли с использованием __tablename__ пишу
SELECT net FROM nets WHERE net >> '10.0.0.0/8'
session.query(Net).filter("net >> '10.0.0.0/8'")
govnokoderНу этот вариант я знаю и использую пока, но это тоже самое, что raw-sql. А мне надо названия колонки указывать с помощью переменных а не непосредственно в запросе.
session.query(Net).filter(“net >> ‘10.0.0.0/8’”)
class Cidr(postgresql.CIDR): ''' Делаем свой тип колонки для того, чтобы была возможность использовать операторы >> и << ''' class comparator_factory(postgresql.CIDR.Comparator): def __lshift__(self, other): return self.op("<<")(other) def __rshift__(self, other): return self.op(">>")(other) class Net(Base): __tablename__ = 'test_nets' id = Column(Integer, primary_key=True) net = Column(Cidr) session.query(Net).filter(Net.net >> '10.0.0.0/8' )