Flask SQLAlchemy强制加入

时间:2018-05-16 03:17:17

标签: python flask flask-sqlalchemy

我有以下两个班级。我想要做的是让我的curriculum.name字段始终出现在我对curriculumareaoflearning的查询中

class Curriculum(db.Model, SerializableModel):
  __tablename__ = "curriculum"
  id = db.Column(db.Integer, primary_key=True)
  name = db.Column(db.String(300), nullable=False)
  iscurrent = db.Column(db.Boolean, nullable=False)
  notes = db.Column(db.Text)
  areasoflearning = db.relationship('CurriculumAreaOfLearning', lazy='dynamic')

class CurriculumAreaOfLearning(db.Model, SerializableModel):
  __tablename__ = "curriculumareaoflearning"
  id = db.Column(db.Integer, primary_key=True)
  name = db.Column(db.String(300), nullable=False)
  curriculumid = db.Column(db.Integer, db.ForeignKey('curriculum.id'), nullable=False)
  curriculum = db.relationship('Curriculum', lazy='joined')

我尝试了以下查询。我的查询中没有我的课程属性

db.session.query(CurriculumAreaOfLearning).join(models.Curriculum, models.CurriculumAreaOfLearning.curriculumid == models.Curriculum.id)

我尝试了以下查询。我收到错误

db.session.query(CurriculumAreaOfLearning).join(models.Curriculum, models.CurriculumAreaOfLearning.curriculumid == models.Curriculum.id).add_columns(model.Curriculum.name)

AttributeError:类型对象'CurriculumAreaOfLearninig'没有属性'Curriculum'

1 个答案:

答案 0 :(得分:0)

试试这个:

db.session.query(CurriculumAreaOfLearning, Curriculum)
          .join(Curriculum, Curriculum.id == CurriculumAreaOfLearning.curriculumid).all()