45 lines
1.8 KiB
Diff
45 lines
1.8 KiB
Diff
|
From 84139973c90aa43e00267d294fd9dcd7d3aa4d2d Mon Sep 17 00:00:00 2001
|
||
|
From: Chris Mayo <aklhfex@gmail.com>
|
||
|
Date: Mon, 23 Oct 2023 19:22:07 +0100
|
||
|
Subject: [PATCH] Fix Exception: Cannot find reverse relation for model
|
||
|
|
||
|
SQLAlchemy 2.0.2 removed the invocation of registry.configure() from
|
||
|
Mapper.iterate_properties causing this problem.
|
||
|
|
||
|
sqlalchemy.orm.registry.configure() was added in 1.4.0b2.
|
||
|
|
||
|
Observed as test failures in:
|
||
|
|
||
|
flask_admin/tests/sqla/test_basic.py
|
||
|
flask_admin/tests/sqla/test_form_rules.py
|
||
|
flask_admin/tests/sqla/test_inlineform.py
|
||
|
---
|
||
|
flask_admin/contrib/sqla/form.py | 1 +
|
||
|
flask_admin/contrib/sqla/view.py | 1 +
|
||
|
2 files changed, 2 insertions(+)
|
||
|
|
||
|
Index: Flask-Admin-1.6.1/flask_admin/contrib/sqla/form.py
|
||
|
===================================================================
|
||
|
--- Flask-Admin-1.6.1.orig/flask_admin/contrib/sqla/form.py
|
||
|
+++ Flask-Admin-1.6.1/flask_admin/contrib/sqla/form.py
|
||
|
@@ -668,6 +668,7 @@ class InlineModelConverter(InlineModelCo
|
||
|
target_mapper = info.model._sa_class_manager.mapper.base_mapper
|
||
|
|
||
|
reverse_prop = None
|
||
|
+ model.registry.configure()
|
||
|
|
||
|
for prop in target_mapper.iterate_properties:
|
||
|
if hasattr(prop, 'direction') and prop.direction.name in ('MANYTOONE', 'MANYTOMANY'):
|
||
|
Index: Flask-Admin-1.6.1/flask_admin/contrib/sqla/view.py
|
||
|
===================================================================
|
||
|
--- Flask-Admin-1.6.1.orig/flask_admin/contrib/sqla/view.py
|
||
|
+++ Flask-Admin-1.6.1/flask_admin/contrib/sqla/view.py
|
||
|
@@ -366,6 +366,7 @@ class ModelView(BaseModelView):
|
||
|
if model is None:
|
||
|
model = self.model
|
||
|
|
||
|
+ model.registry.configure()
|
||
|
return model._sa_class_manager.mapper.iterate_properties
|
||
|
|
||
|
def _apply_path_joins(self, query, joins, path, inner_join=True):
|