2016-11-15 2 views
1

Ich habe etwas, das wie folgt aussieht:Wie verwende ich Datum (Zeit) Arithmetik in einer Sqlalchemy-Beziehung?

from sqlalchemy import sa 
from sqlalchemy.ext.declarative import declarative_base 

metadata = sa.MetaData(schema='myschema') 
Base = declarative_base(metadata=metadata) 


class MyThing(Base): 
    __tablename__ = 'thing' 

    ... 
    id = sa.Column('id', sa.Integer, primary_key=True) 

    recent_things = sa.orm.relationship(
     'OtherThing', 
     primaryjoin="and(MyThing.id==OtherThing.thing_id," 
     "OtherThing.timestamp >= now - 60)" 
    ) 



class OtherThing(Base): 
    __tablename__ = 'others' 

    ... 
    thing_id = sa.Column('thing_id', sa.Integer, nullable=False) 
    timestamp = sa.Column('timestamp', sa.DateTime) 

Leider ist dies nicht funktioniert. Ich habe auch versucht >= remote('now - 60') und ein paar andere Variationen. Jeder schlägt mit verschiedenen Ausnahmen fehl.

Wie konfiguriere ich diese Abfrage richtig, um zu tun, was ich will? Ich habe ein Ergebnis gefunden, das auf die -Funktion hindeutet, aber es scheint, dass dies nicht mehr Teil von sqlalchemy ist.

Antwort