From 610da51d65fd8e0357a298508b4a690d8a534ad0 Mon Sep 17 00:00:00 2001 From: lukasbuenger Date: Sun, 7 Apr 2013 16:36:05 +0200 Subject: [PATCH] fixed from_native delegation when it accepts files --- rest_framework/genericrelations.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rest_framework/genericrelations.py b/rest_framework/genericrelations.py index 3c27e8009..963871799 100644 --- a/rest_framework/genericrelations.py +++ b/rest_framework/genericrelations.py @@ -55,6 +55,13 @@ class GenericRelatedField(serializers.WritableField): # Get the serializer responsible for input resolving serializer = self.determine_serializer_for_data(value) serializer.initialize(self.parent, self.source) + + # The following is necessary due to the inconsistency of the `from_native` argument count when a serializer + # accepts files. + args = [value] + import inspect + if len(inspect.getargspec(serializer.from_native).args) > 2: + args.append(None) return serializer.from_native(value) def determine_deserializer_for_data(self, value):