#1259 closed defect (fixed)
[magic-removal][patch] mismatch between singular and plural for admin model URLs
Reported by: | Owned by: | Adrian Holovaty | |
---|---|---|---|
Component: | contrib.admin | Version: | |
Severity: | normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
There seems to be a mismatch as to how admin model URLs are constructed in magic-removal; as a result, log entries in the admin interface currently do not point to the valid URL path for their corresponding items.
In contrib/admin/templatetags/adminapplist.py
, admin_url
is built in the singular in the render
method of AdminApplistNode
:
'admin_url': '%s/%s/' % (app_label, m.__name__.lower()),
In contrib/admin/models.py
, such a URL is built with pluralization in the get_admin_url
method of LogEntry
:
return "%s/%s/%s/" % (self.get_content_type().get_package(), self.get_content_type().python_module_name, self.object_id)
python_module_name
, in turn, is originally constructed in db/models/options.py
with the following:
get_module_name = lambda class_name: class_name.lower() + 's'
As I'm not certain which is intended as the final case (singular vs. plural), I have refrained from attempting a fix; I'll gladly work up a patch once I know which way this should go.
Attachments (1)
Change History (4)
comment:1 by , 19 years ago
Summary: | [magic-removal] mismatch between singular and plural for admin model URLs → [magic-removal][patch] mismatch between singular and plural for admin model URLs |
---|
by , 19 years ago
Attachment: | magic_removal-singular_normalization.diff added |
---|
Normalizes all table names to be singular
comment:2 by , 19 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:3 by , 17 years ago
Reporter: | changed from | to
---|
I'm attaching a patch to singularize all the table names, which fixes this ticket and also apparently fixes #1257 as bonus. In addition, this patch alters every table name which formerly went without a leading package (e.g., "content_types") to now begin with "django_", e.g., "django_content_type".
This patch will thoroughly break an existing Django installation; a conversion script is probably necessary for such cases.