Flask backref的datetime SQLAlchemy之间的查询

Flask backref的datetime SQLAlchemy之间的查询,flask,sqlalchemy,flask-sqlalchemy,Flask,Sqlalchemy,Flask Sqlalchemy,当预订是平面的属性时,如何在两个日期之间过滤预订: planes = Plane.query.all() 平面有一个预订的背景参考 plane_id = db.Column(db.Integer, db.ForeignKey('plane.id')) plane = db.relationship('Plane', backref=db.backref('bookings', lazy='dynamic')) 预订有开始和结束日期时间: start_date = db.Column(db.D

当预订是
平面的属性时,如何在两个日期之间过滤
预订

planes = Plane.query.all()
平面
有一个预订的背景参考

plane_id = db.Column(db.Integer, db.ForeignKey('plane.id'))
plane = db.relationship('Plane', backref=db.backref('bookings', lazy='dynamic'))
预订
有开始和结束日期时间:

start_date = db.Column(db.DateTime)
end_date = db.Column(db.DateTime)
如何将预订过滤到指定日期,以便飞机只包含过滤后的预订?

类似于

session.query(
飞机
).加入(
预订
).过滤器(
Bookings.start\u date>=开始日期,
预订。结束日期
  • “开始日期”和“结束日期”的类型为datetime.datetime

  • 将它们转换为字符串(类似于“2020-06-2319:40:33”):

    *.start\u date=预订.start\u date.isoformat(“”,'秒')

    *.end_date=预订.end_date.isoformat(“”,'秒')

  • 获取当前日期为: currenct_date=datetime.datetime.now().isoformat(“”,'seconds')

  • session.query(平面).join(预订) .filter(currenct\u date.between(Bookings.start\u date,Bookings.end\u date).all()


  • @amiawizard Oops!将
    =>
    替换为
    =
    !!
    session.query(
        Plane
    ).join(
        Bookings
    ).filter(
        Bookings.start_date >= start_date,
        Bookings.end_date <= end_date
    ).all()