为了账号安全,请及时绑定邮箱和手机立即绑定

Flask SQLAlchemy 从查询结果中的两个连接的映射实体中获取列

Flask SQLAlchemy 从查询结果中的两个连接的映射实体中获取列

DIEA 2021-07-29 13:57:11
我有一个表格,MenuOptions它代表在我的应用程序的下拉列表中找到的任何选项。每个选项都可以通过它所属的菜单(例如MenuOptions.menu_name)和该选项的特定值(MenuOptions.option_value)来标识。这个表在我的数据库中都有关系并且不使用外键,所以我很难让它与 SQLAlchemy 相结合。在 SQL 中,它会像以下一样简单:SELECT     *FROM    document        JOIN    menu_options ON menu_options.option_menu_name = 'document_type'        AND menu_options.option_value = document.document_type_id来定义这种关系。但是,在 SQLAlchemy 中执行此操作时遇到了麻烦,因为没有外键我无法干净地映射这种关系。在 SQLAlchemy 中,我迄今为止所做的最好的是:the_doc = db.session.query(Document, MenuOptions).filter(    Document.id == document_id).join(    MenuOptions,    and_(        MenuOptions.menu_name == text('"document_type"'),        MenuOptions.value == Document.type_id    )).first()哪个确实有效,并且确实返回了正确的值,但将它们作为两个单独模型对象的列表返回,因此我必须通过引用映射的文档属性the_doc[0]和映射的 MenuOptions 属性通过the_doc[1]有没有办法可以在不使用外键或ForeignKeyConstraint我的模型中的任何外键的情况下,将此关系作为单个查询对象返回,其中包含所有属性?我试过了add_columns,add_entity但得到的结果基本相同。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 268 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号