From 2f6e5d0509632364befe375d013a1d3acc0b245b Mon Sep 17 00:00:00 2001 From: James Beith Date: Mon, 10 Aug 2015 11:03:57 +0100 Subject: [PATCH] Add display value method Returns the text representation of the instance. Subclasses can override this method to provide a different display value used for populating the `choices` property. --- rest_framework/relations.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rest_framework/relations.py b/rest_framework/relations.py index 330d17c08..8f433d421 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -148,7 +148,7 @@ class RelatedField(Field): return OrderedDict([ ( six.text_type(self.to_representation(item)), - six.text_type(item) + six.text_type(self.display_value(item)) ) for item in queryset ]) @@ -160,6 +160,9 @@ class RelatedField(Field): def iter_options(self): return iter_options(self.grouped_choices) + def display_value(self, instance): + return six.text_type(instance) + class StringRelatedField(RelatedField): """