From bca2ea35dff9cd673cee7600c1173adb21798560 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Tue, 14 Jul 2015 13:21:08 +0100 Subject: [PATCH] Ensure that realtionship fields '.choices' returns an empty dict when accessed with a read-only field. Closes #2910. --- rest_framework/relations.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rest_framework/relations.py b/rest_framework/relations.py index c5cbfebcd..135b9614d 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -109,12 +109,18 @@ class RelatedField(Field): @property def choices(self): + queryset = self.get_queryset() + if queryset is None: + # Ensure that field.choices returns something sensible + # even when accessed with a read-only field. + return {} + return OrderedDict([ ( six.text_type(self.to_representation(item)), six.text_type(item) ) - for item in self.get_queryset() + for item in queryset ])