Python 多连接原因属性错误SQLAlchemy

Python 多连接原因属性错误SQLAlchemy,python,sqlalchemy,Python,Sqlalchemy,我从1.3.3升级SQLAlchemy时遇到了一些问题。 我有三个表定义如下: class LAreas(DB.Model): __tablename__ = "l_areas" __table_args__ = {"schema": "ref_geo"} id_area = DB.Column(DB.Integer, primary_key=True) id_type = DB.Column(DB.Integer, ForeignKey("ref_geo.bib

我从1.3.3升级SQLAlchemy时遇到了一些问题。 我有三个表定义如下:

class LAreas(DB.Model):
    __tablename__ = "l_areas"
    __table_args__ = {"schema": "ref_geo"}
    id_area = DB.Column(DB.Integer, primary_key=True)
    id_type = DB.Column(DB.Integer, ForeignKey("ref_geo.bib_areas_types.id_type"))
    area_name = DB.Column(DB.Unicode)
    area_code = DB.Column(DB.Unicode)
    geom = DB.Column(Geometry("GEOMETRY", current_app.config["LOCAL_SRID"]))
    source = DB.Column(DB.Unicode)
    geom = DB.Column(Geometry("GEOMETRY", 4326))
    area_type = DB.relationship("BibAreasTypes", lazy="select")

corSiteArea = DB.Table(
    "cor_site_area",
    DB.MetaData(schema="gn_monitoring"),
    DB.Column(
        "id_base_site",
        DB.Integer,
        ForeignKey("gn_monitoring.cor_site_application.id_base_site"),
        primary_key=True,
    ),
    DB.Column(
        "id_area", DB.Integer, ForeignKey("ref_geo.l_areas.id_area"), primary_key=True
    ),
)

corSiteModule = DB.Table(
    "cor_site_module",
    DB.MetaData(schema="gn_monitoring"),
    DB.Column(
        "id_base_site",
        DB.Integer,
        ForeignKey("gn_monitoring.cor_site_application.id_base_site"),
        primary_key=True,
    ),
    DB.Column(
        "id_module",
        DB.Integer,
        ForeignKey("gn_commons.t_modules.id_module"),
        primary_key=True,
    ),
)
然后,我编写一个带有两个连接的查询,以获取站点中的我的区域和如下所示的模块:

q = (
    DB.session.query(LAreas.area_name).distinct()
    .outerjoin(corSiteArea, LAreas.id_area == corSiteArea.c.id_area)
    .outerjoin(
        corSiteModule, corSiteModule.c.id_base_site == corSiteArea.c.id_base_site
    )
    .filter(corSiteModule.c.id_module == id_module)
)
此查询在SQLAlchemy 1.1.13中运行良好,但在最新版本1.3.3中不起作用。我有一个错误:

File "/home/theo/workspace/GN2/GeoNature/backend/venv/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2414, in _join
    left, right, onclause, prop, create_aliases, outerjoin, full
  File "/home/theo/workspace/GN2/GeoNature/backend/venv/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
    ) = self._join_determine_implicit_left_side(left, right, onclause)
  File "/home/theo/workspace/GN2/GeoNature/backend/venv/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2518, in _join_determine_implicit_left_side
    self._from_obj, r_info.selectable, onclause
  File "/home/theo/workspace/GN2/GeoNature/backend/venv/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 149, in find_left_clause_to_join_from
    elif Join._can_join(f, s) or onclause is not None:
  File "/home/theo/workspace/GN2/GeoNature/backend/venv/lib/python3.6/site-packages/sqlalchemy/sql/selectable.py", line 957, in _can_join
    consider_as_foreign_keys=consider_as_foreign_keys,
  File "/home/theo/workspace/GN2/GeoNature/backend/venv/lib/python3.6/site-packages/sqlalchemy/sql/selectable.py", line 982, in _joincond_scan_left_right
    if nrte.table_name == left.name:
AttributeError: '_ORMJoin' object has no attribute 'name'
有什么帮助吗

多谢各位