Code

Changes between Version 2 and Version 3 of Ticket #3646


Ignore:
Timestamp:
03/03/07 10:08:44 (7 years ago)
Author:
ubernostrum
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #3646 – Description

    v2 v3  
    1 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`. 
     1The 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. 
     2 
     3So, 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`. 
    24 
    35I'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.