aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
authorTom Christie2013-03-13 11:42:12 +0000
committerTom Christie2013-03-13 11:42:12 +0000
commita798a5350a6aa3100695d41d4d37ec7e2e073bdd (patch)
tree894455f0f98283db650bd08f01d21d4260b0a44d /rest_framework/fields.py
parent126cadf27e5956dffd44ed7330f101745fdb37d3 (diff)
downloaddjango-rest-framework-a798a5350a6aa3100695d41d4d37ec7e2e073bdd.tar.bz2
Fix duplicated database queries for paginated lists.
Closes #713.
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index 0a199f10..4b6931ad 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -26,14 +26,16 @@ def is_simple_callable(obj):
"""
True if the object is a callable that takes no arguments.
"""
- try:
- args, _, _, defaults = inspect.getargspec(obj)
- except TypeError:
+ function = inspect.isfunction(obj)
+ method = inspect.ismethod(obj)
+
+ if not (function or method):
return False
- else:
- len_args = len(args) if inspect.isfunction(obj) else len(args) - 1
- len_defaults = len(defaults) if defaults else 0
- return len_args <= len_defaults
+
+ args, _, _, defaults = inspect.getargspec(obj)
+ len_args = len(args) if function else len(args) - 1
+ len_defaults = len(defaults) if defaults else 0
+ return len_args <= len_defaults
def get_component(obj, attr_name):