diff options
| author | Tim Graham <timograham@gmail.com> | 2024-10-17 14:38:05 -0400 |
|---|---|---|
| committer | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2024-11-11 16:53:31 +0100 |
| commit | ef8ae06c2acd7b3673fee15b379213169153c7b0 (patch) | |
| tree | 86c15d74df85bae0933a4c585262749e59bb9166 | |
| parent | c4614b53d355561d426b0fed903e96c3c198e10d (diff) | |
Fixed #35903 -- Made admin's "view on site" URL accept non-integer ContentType pks.
| -rw-r--r-- | django/contrib/admin/sites.py | 2 | ||||
| -rw-r--r-- | tests/admin_views/tests.py | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py index dc67262afc..3399bd87b8 100644 --- a/django/contrib/admin/sites.py +++ b/django/contrib/admin/sites.py @@ -282,7 +282,7 @@ class AdminSite: path("autocomplete/", wrap(self.autocomplete_view), name="autocomplete"), path("jsi18n/", wrap(self.i18n_javascript, cacheable=True), name="jsi18n"), path( - "r/<int:content_type_id>/<path:object_id>/", + "r/<path:content_type_id>/<path:object_id>/", wrap(contenttype_views.shortcut), name="view_on_site", ), diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index c5d8b8f4f6..3f106f6814 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -8664,6 +8664,19 @@ class AdminViewOnSiteTests(TestCase): ), ) + def test_view_on_site_url_non_integer_ids(self): + """The view_on_site URL accepts non-integer ids.""" + self.assertEqual( + reverse( + "admin:view_on_site", + kwargs={ + "content_type_id": "37156b6a-8a82", + "object_id": "37156b6a-8a83", + }, + ), + "/test_admin/admin/r/37156b6a-8a82/37156b6a-8a83/", + ) + @override_settings(ROOT_URLCONF="admin_views.urls") class InlineAdminViewOnSiteTest(TestCase): |
