Мне нужно получить список planes
и все их соответствующие bookings
, в идеале - список планов, в которых каждая плоскость имеет список заказов в качестве одного из своих свойств, поэтому его можно легко кодировать json , Как я могу сделать это с помощью SQLAlchemy? Я подозреваю, что SQLAlchemy обладает некоторыми мощными функциями, чтобы сделать это проще, я бы предпочел не делать 2 запроса и обрабатывать результаты.SQLAlchemy от одного до большого результата запроса
Например результат:
Plane
- id: -- 1
- name: -- Eagle Bravo
- bookings: -- Booking1, Booking2, Booking3
Plane
- id: -- 2
- name: -- Charlie Bravo
- bookings: -- Booking4, Booking5, Booking6
Plane
- id: -- 3
- name: -- Alpha Bravo
- bookings: -- Booking7, Booking8, Booking9
Plane и Бронирование модели:
class Booking(db.Model):
id = db.Column(db.Integer, primary_key=True)
start_date = db.Column(db.DateTime)
end_date = db.Column(db.DateTime)
person_id = db.Column(db.Integer, db.ForeignKey('person.id'))
person = db.relationship('Person', backref=db.backref('Bookings', lazy='dynamic'))
plane_id = db.Column(db.Integer, db.ForeignKey('plane.id'))
def __init__(self, start_date, end_date, person_id):
self.start_date = start_date
self.end_date = end_date
self.person_id = person_id
def __repr__(self):
return '<Booking... %r>'
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class Plane(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80))
def __init__(self, name):
self.name = name
def __repr__(self):
return '<Plane... %r>'
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}