From dabab61acf2a529eba08303c10f68784253a626f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20G=C3=A5rder?= Date: Tue, 7 May 2024 22:40:50 +0200 Subject: [PATCH 1/4] build url based on the used view --- sqladmin/models.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sqladmin/models.py b/sqladmin/models.py index f075ecdc..7092f3ac 100644 --- a/sqladmin/models.py +++ b/sqladmin/models.py @@ -726,6 +726,13 @@ def _build_url_for(self, name: str, request: Request, obj: Any) -> URL: pk=get_object_identifier(obj), ) + def _build_url_from_view(self, name: str, request: Request, obj: Any) -> URL: + return request.url_for( + name, + identity=self.identity, + pk=get_object_identifier(obj), + ) + def _get_prop_name(self, prop: MODEL_ATTR) -> str: return prop if isinstance(prop, str) else prop.key From a657355db3e85e11cf5cc9546a39510c314908bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20G=C3=A5rder?= Date: Tue, 7 May 2024 22:58:48 +0200 Subject: [PATCH 2/4] list-template to use urls for the current view --- sqladmin/templates/sqladmin/list.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sqladmin/templates/sqladmin/list.html b/sqladmin/templates/sqladmin/list.html index b141ecb6..7d560930 100644 --- a/sqladmin/templates/sqladmin/list.html +++ b/sqladmin/templates/sqladmin/list.html @@ -119,13 +119,13 @@

{{ model_view.name_plural }}

{% if model_view.can_view_details %} - {% endif %} {% if model_view.can_edit %} - From 3dbd876bd7b7b59c231f4e399835cdcda2a85d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20G=C3=A5rder?= Date: Tue, 7 May 2024 23:00:42 +0200 Subject: [PATCH 3/4] fix view-classes setting different identities using same model --- sqladmin/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sqladmin/models.py b/sqladmin/models.py index 7092f3ac..d481757c 100644 --- a/sqladmin/models.py +++ b/sqladmin/models.py @@ -87,7 +87,7 @@ def __new__(mcls, name, bases, attrs: dict, **kwargs: Any): ) cls.pk_columns = get_primary_keys(model) - cls.identity = slugify_class_name(model.__name__) + cls.identity = kwargs.get("identity", slugify_class_name(model.__name__)) cls.model = model cls.name = attrs.get("name", prettify_class_name(cls.model.__name__)) From c6029eda41d62e4b6e9f78ccaf26bacdf1e79d72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20G=C3=A5rder?= Date: Wed, 8 May 2024 17:36:34 +0200 Subject: [PATCH 4/4] removing workaround --- sqladmin/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sqladmin/models.py b/sqladmin/models.py index d481757c..7092f3ac 100644 --- a/sqladmin/models.py +++ b/sqladmin/models.py @@ -87,7 +87,7 @@ def __new__(mcls, name, bases, attrs: dict, **kwargs: Any): ) cls.pk_columns = get_primary_keys(model) - cls.identity = kwargs.get("identity", slugify_class_name(model.__name__)) + cls.identity = slugify_class_name(model.__name__) cls.model = model cls.name = attrs.get("name", prettify_class_name(cls.model.__name__))