python-Flask-Admin/reverse-relation-for-model.patch
Matej Cepl 36ed486a0d Accepting request 1119979 from home:mcalabkova:branches:devel:languages:python:flask
- 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
2023-10-25 13:51:42 +00:00

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):