Opened 18 years ago
Last modified 18 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 )
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 , 18 years ago
Triage Stage: | Unreviewed → Design decision needed |
---|
comment:2 by , 18 years ago
Description: | modified (diff) |
---|
comment:3 by , 18 years ago
Description: | modified (diff) |
---|