В моем файле моделей есть следующее.Я в основном использую рабочий тип как подзапрос, но это повторяется.Рабочий тип может возвращать несколько значений.Я создаю Pandas DataFrame с данными.Мне нужно, чтобы рабочий тип был одним из столбцов в кадре данных.В настоящее время я просто перебираю кадр данных и вручную заполняю столбец приведенным ниже кодом.
Код, который я сейчас использую для заполнения рабочего типа
query = Schedule.query
df = pd.read_sql(query.statement, con=db.engine)
df['worktype'] = ''
for i, r in df.iterrows():
df.at[i, 'worktype'] = Schedule.query.filter(
Schedule.id==r.id).first().worktype()
Код файла моей модели
class Schedule(db.Model):
id = db.Column(db.Integer, primary_key=True)
api_fk = db.Column(db.String(17), db.ForeignKey('wells.api_pk'))
afe_fk = db.Column(db.String(14), db.ForeignKey('excal_afe.afe_pk'))
rig_up = db.Column(db.Date)
rig_down = db.Column(db.Date)
def worktype(self):
return ' ,'.join(str(d.worktype_fk) for d in
scheduleWorktype.query.with_entities(
scheduleWorktype.worktype_fk) .filter(
scheduleWorktype.schedule_well_id==id
class scheduleWorktype(db.Model):
id = db.Column(db.Integer, primary_key=True)
description = db.Column(db.String(24))
worktype_fk = db.Column(db.String(5), db.ForeignKey('wells_worktype.worktype_pk')
В конечном итоге я хотел бы использовать этот синтаксис для add_column, аналогичного этому
query = Schedule.query.add_column(Schedule.worktype)