Skip to content

Commit 7bc7de7

Browse files
committed
customizable identity attribute for ModelView URL generation
1 parent 4f78e70 commit 7bc7de7

1 file changed

Lines changed: 3 additions & 4 deletions

File tree

sqladmin/models.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def __new__(mcls, name, bases, attrs: dict, **kwargs: Any):
9292
)
9393

9494
cls.pk_columns = get_primary_keys(model)
95-
cls.identity = slugify_class_name(model.__name__)
95+
cls.identity = slugify_class_name(attrs.get("identity", model.__name__))
9696
cls.model = model
9797

9898
cls.name = attrs.get("name", prettify_class_name(cls.model.__name__))
@@ -738,8 +738,7 @@ def _url_for_delete(self, request: Request, obj: Any) -> str:
738738
pk = get_object_identifier(obj)
739739
query_params = urlencode({"pks": pk})
740740
url = request.url_for(
741-
"admin:delete", identity=slugify_class_name(obj.__class__.__name__)
742-
)
741+
"admin:delete", identity=self.identity)
743742
return str(url) + "?" + query_params
744743

745744
def _url_for_details_with_prop(self, request: Request, obj: Any, prop: str) -> URL:
@@ -754,7 +753,7 @@ def _url_for_action(self, request: Request, action_name: str) -> str:
754753
def _build_url_for(self, name: str, request: Request, obj: Any) -> URL:
755754
return request.url_for(
756755
name,
757-
identity=slugify_class_name(obj.__class__.__name__),
756+
identity=self.identity,
758757
pk=get_object_identifier(obj),
759758
)
760759

0 commit comments

Comments
 (0)