- Add few patches to fix tests (from gh#flask-admin/flask-admin#2328): * model-from-model.patch * reverse-relation-for-model.patch * bytes-not-str OBS-URL: https://build.opensuse.org/request/show/1119979 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:flask/python-Flask-Admin?expand=0&rev=33
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):
|