我有一个表格,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但得到的结果基本相同。
添加回答
举报
0/150
提交
取消