python - Flask SQLAlchemy 强制连接
问题描述
我有以下两个课程。我想要做的是让我的课程名称字段始终出现在我的课程区域学习查询中
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'
解决方案
尝试这个:
db.session.query(CurriculumAreaOfLearning, Curriculum)
.join(Curriculum, Curriculum.id == CurriculumAreaOfLearning.curriculumid).all()
推荐阅读
- http - 通过 http 显示的 Gstreamer 和 hlssink 不起作用
- python - 找到一个集合(具有元素的副本)是python中更大集合的子集
- higher-order-functions - 流氓:函数可以返回函数吗
- javascript - 从数组中删除字符串
- recursion - 防止在 Common Lisp 中重复调用递归函数
- linux - 如何使用安装 openssl 从源代码重新配置 Apache?
- rust - 为什么这个 TextureCreator 实例没有
活得够长吗? - c++ - 使用带有指针的 new 时创建指定长度的数组
- javascript - 如何在javascript中设置上午/下午
- android - 如何将 CheckBox buttonDrawable 重置为默认值