From 19bcc3c86539e215e5668fac93cfc25e63166a3e Mon Sep 17 00:00:00 2001 From: Pavel Savchenko Date: Thu, 1 Nov 2012 08:51:55 +0200 Subject: [PATCH] use getattr to choose the pk field --- rest_framework/serializers.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 47c544b39..5443d2d67 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -126,8 +126,11 @@ class BaseSerializer(Field): for key, val in fields.items(): if key not in ret: ret[key] = val - if val.source.primary_key: - pk_field = key + try: + if getattr(val.source, primary_key): + pk_field = key + except AttributeError: + pass # If 'fields' is specified, use those fields, in that order. if self.opts.fields: