Opened 17 years ago

Last modified 17 years ago

#3646 closed

ABSOLUTE_URL_OVERRIDES docs are inconsistent with how they actually work — at Version 3

Reported by: James Bennett Owned by: Adrian Holovaty
Component: Documentation Version: dev
Severity: Keywords:
Cc: nsteinmetz@… Triage Stage: Ready for checkin
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by James Bennett)

The docs for the ABSOLUTE_URL_OVERRIDES setting state that the keys in that dictionary should be of the form app_label.modelname, with the model name capitalized, but the code in django/db/models/base.py which curries get_absolute_url looks for app_label.module_name, and module_name is normalized to lower-case by that point.

So, for example, the docs say to use weblog.Entry as a key in ABSOLUTE_URL_OVERRIDES, but get_absolute_url will actually look for weblog.entry.

I'm of two minds on how to solve this; the naive solution is to have the curried get_absolute_url look for opts.module_name.capitalize(), since that will make it consistent with the examples in the docs, but it's entirely possible that someone will create a model class with an all-lowercase name (which is, I assume, why module_name is normalizing it to lowercase), in which case the better solution is to change the docs.

Change History (3)

comment:1 by James Bennett, 17 years ago

Triage Stage: UnreviewedDesign decision needed

comment:2 by James Bennett, 17 years ago

Description: modified (diff)

comment:3 by James Bennett, 17 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top