Django

Code

Ticket #1259 (closed: fixed)

Opened 3 years ago

Last modified 1 year ago

[magic-removal][patch] mismatch between singular and plural for admin model URLs

Reported by: Tom Tobin <korpios@korpios.com> Assigned to: adrian
Milestone: Component: django.contrib.admin
Version: Keywords:
Cc: Triage Stage: Unreviewed
Has patch: 1 Needs documentation: 0
Needs tests: 0 Patch needs improvement: 0

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

magic_removal-singular_normalization.diff (12.6 kB) - added by Tom Tobin <korpios@gmail.com> on 01/22/06 02:13:56.
Normalizes all table names to be singular

Change History

01/22/06 02:13:14 changed by Tom Tobin <korpios@gmail.com>

  • summary changed from [magic-removal] mismatch between singular and plural for admin model URLs to [magic-removal][patch] mismatch between singular and plural for admin model URLs.

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.

01/22/06 02:13:56 changed by Tom Tobin <korpios@gmail.com>

  • attachment magic_removal-singular_normalization.diff added.

Normalizes all table names to be singular

01/22/06 20:50:17 changed by adrian

  • status changed from new to closed.
  • resolution set to fixed.

(In [2111]) magic-removal: Fixed #1259 -- This is VERY backwards-incompatible! Normalized all table names to be singular. Added 'django_' prefix to core tables that didn't have it. Thanks, Tom Tobin.

07/12/07 12:59:40 changed by korpios

  • reporter changed from Tom Tobin <korpios@gmail.com> to Tom Tobin <korpios@korpios.com>.

Add/Change #1259 ([magic-removal][patch] mismatch between singular and plural for admin model URLs)




Change Properties
Action