Skip to content
Draft
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions sqladmin/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not change original _build_url_for ? If identity is set by user, use that, otherwiose default slugify_class_name(obj.__class__.__name__).

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

Expand Down
4 changes: 2 additions & 2 deletions sqladmin/templates/sqladmin/list.html
Original file line number Diff line number Diff line change
Expand Up @@ -119,13 +119,13 @@ <h3 class="card-title">{{ model_view.name_plural }}</h3>
</td>
<td class="text-end">
{% if model_view.can_view_details %}
<a href="{{ model_view._build_url_for('admin:details', request, row) }}" data-bs-toggle="tooltip"
<a href="{{ model_view._build_url_from_view('admin:details', request, row) }}" data-bs-toggle="tooltip"
data-bs-placement="top" title="View">
<span class="me-1"><i class="fa-solid fa-eye"></i></span>
</a>
{% endif %}
{% if model_view.can_edit %}
<a href="{{ model_view._build_url_for('admin:edit', request, row) }}" data-bs-toggle="tooltip"
<a href="{{ model_view._build_url_from_view('admin:edit', request, row) }}" data-bs-toggle="tooltip"
data-bs-placement="top" title="Edit">
<span class="me-1"><i class="fa-solid fa-pen-to-square"></i></span>
</a>
Expand Down