#28460 closed Bug (duplicate)
CharField primary keys with underscores are reversed incorrectly in admin links
Reported by: | cypreess | Owned by: | nobody |
---|---|---|---|
Component: | contrib.admin | Version: | 1.11 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
This bug is probably related to ticket #22266 and it still appears in 1.11.2
1) I am using CharField for models primary key fields. Example value of id field for custom User model: usr_12345
2) In admin list view ID's are represented corectly: usr_12345
3) In admin object detail view link to the page contains extra 5F
after underscore /admin/accounts/user/usr_5F12345/change/
Somehow the problem affects 3rd party apps (I am trying to use django-loginas) which renders in template link: {% url 'loginas-user-login' object_id %}
ending up redirecting to incorrect link /admin/login/user/usr_5F12345/
(which will do 404 because User usr_5F12345
is not existing obviously).
However at the same time reverse function seems to work fine:
>>> reverse("loginas-user-login", args=['usr_12345']) '/admin/login/user/usr_12345/'
which is confusing.
Change History (2)
comment:1 by , 7 years ago
Component: | Uncategorized → contrib.admin |
---|---|
Resolution: | → duplicate |
Status: | new → closed |
Type: | Uncategorized → Bug |
comment:2 by , 7 years ago
Summary: | CharField primary keys with underscores are reversed incorectly in admin links → CharField primary keys with underscores are reversed incorrectly in admin links |
---|
Looks like a duplicate of #22226. When reversing, you need to use
django.contrib.admin.utils.quote()
or theadmin_urlquote
template filter on the primary key.