diff options
| author | Tim Graham <timograham@gmail.com> | 2014-09-09 08:29:49 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-09-09 11:05:31 -0400 |
| commit | c32bc1a7a7bbb3d5bd0a2c11bc77dd5ab1c32fbc (patch) | |
| tree | 378c2e4d2ee2390430fadc759e1ecb8852e84aa9 /django | |
| parent | e5ae03fd5a887a7038fb6878ffeec85b92829d1b (diff) | |
Fixed #11775 -- Made ABSOLUTE_URL_OVERRIDES work with models that don't define get_absolute_url().
Thanks jukvalim for the report and initial patch,
and Preston Timmons for review.
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/models/base.py | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/django/db/models/base.py b/django/db/models/base.py index 2cad6ee5a5..d416b65ccf 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -3,7 +3,6 @@ from __future__ import unicode_literals import copy import inspect import sys -from functools import update_wrapper import warnings from django.apps import apps @@ -346,9 +345,11 @@ class ModelBase(type): if cls.__doc__ is None: cls.__doc__ = "%s(%s)" % (cls.__name__, ", ".join(f.attname for f in opts.fields)) - if hasattr(cls, 'get_absolute_url'): - cls.get_absolute_url = update_wrapper(curry(get_absolute_url, opts, cls.get_absolute_url), - cls.get_absolute_url) + get_absolute_url_override = settings.ABSOLUTE_URL_OVERRIDES.get( + '%s.%s' % (opts.app_label, opts.model_name) + ) + if get_absolute_url_override: + setattr(cls, 'get_absolute_url', get_absolute_url_override) ensure_default_manager(cls) signals.class_prepared.send(sender=cls) @@ -1571,16 +1572,6 @@ def method_get_order(ordered_obj, self): ordered_obj.objects.filter(**{order_name: rel_val}).values(pk_name)] -############################################## -# HELPER FUNCTIONS (CURRIED MODEL FUNCTIONS) # -############################################## - -def get_absolute_url(opts, func, self, *args, **kwargs): - return settings.ABSOLUTE_URL_OVERRIDES.get( - '%s.%s' % (opts.app_label, opts.model_name), func - )(self, *args, **kwargs) - - ######## # MISC # ######## |
