summaryrefslogtreecommitdiff
path: root/django/db
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2014-09-09 08:29:49 -0400
committerTim Graham <timograham@gmail.com>2014-09-09 11:05:31 -0400
commitc32bc1a7a7bbb3d5bd0a2c11bc77dd5ab1c32fbc (patch)
tree378c2e4d2ee2390430fadc759e1ecb8852e84aa9 /django/db
parente5ae03fd5a887a7038fb6878ffeec85b92829d1b (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/db')
-rw-r--r--django/db/models/base.py19
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 #
########