From 8952096868fdb446b6e485d1d8d7440b3e27b43e Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Mon, 24 Oct 2016 05:45:34 -0400 Subject: [PATCH] Check args and kwargs in is_simple_callable --- rest_framework/fields.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index e48285005..f75fcfe05 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -54,12 +54,17 @@ if six.PY3: """ True if the object is a callable that takes no arguments. """ - if not callable(obj): + if not (inspect.isfunction(obj) or inspect.ismethod(obj)): return False sig = inspect.signature(obj) params = sig.parameters.values() - return all(param.default != param.empty for param in params) + return all( + param.kind == param.VAR_POSITIONAL or + param.kind == param.VAR_KEYWORD or + param.default != param.empty + for param in params + ) else: def is_simple_callable(obj):