在daterefine SQLAlchemy之间查询backref

时间:2015-04-14 01:55:41

标签: flask sqlalchemy flask-sqlalchemy

如果预订属于bookings的属性,如何在2个日期之间过滤plane

planes = Plane.query.all()

plane有预订背景

plane_id = db.Column(db.Integer, db.ForeignKey('plane.id'))
plane = db.relationship('Plane', backref=db.backref('bookings', lazy='dynamic'))

booking有一个开始和结束日期时间:

start_date = db.Column(db.DateTime)
end_date = db.Column(db.DateTime)

如何将预订过滤到指定日期,以便飞机仅包含已过滤的预订?

2 个答案:

答案 0 :(得分:1)

类似于querying with joins

session.query(Plane).join(Bookings).filter(Bookings.start_date>=start_date, Bookings.end_date<=end_date).all() 

答案 1 :(得分:0)

  1. “开始日期”和“结束日期”的类型为datetime.datetime

  2. 将它们转换为字符串(就像'2020-06-23 19:40:33'):

    *。 start_date = Bookings.start_date.isoformat('','seconds')

    *。 end_date = Bookings.end_date.isoformat('','seconds')

  3. 获取当前日期为: currenct_date = datetime.datetime.now()。isoformat('','seconds')。

  4. session.query(Plane).join(Bookings) .filter(currenct_date.between(Bookings.start_date,Bookings.end_date).all()