From 27fc3cd4bdb4130f0532e95d84ddd54a9253583d Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 10 Aug 2016 12:09:36 +0100 Subject: [PATCH] Limit querysets to html_cutoff when rendering relational choices --- rest_framework/relations.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/rest_framework/relations.py b/rest_framework/relations.py index 3cad56b9f..ad74d1f35 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -163,7 +163,7 @@ class RelatedField(Field): # even when accessed with a read-only field. return {} - if cutoff: + if cutoff is not None: queryset = queryset[:cutoff] return OrderedDict([ @@ -184,7 +184,7 @@ class RelatedField(Field): def iter_options(self): return iter_options( - self.get_choices(self.html_cutoff), + self.get_choices(cutoff=self.html_cutoff), cutoff=self.html_cutoff, cutoff_text=self.html_cutoff_text ) @@ -493,9 +493,12 @@ class ManyRelatedField(Field): for value in iterable ] + def get_choices(self, cutoff=None): + return self.child_relation.get_choices(cutoff) + @property def choices(self): - return self.child_relation.choices + return self.get_choices() @property def grouped_choices(self): @@ -503,7 +506,7 @@ class ManyRelatedField(Field): def iter_options(self): return iter_options( - self.grouped_choices, + self.get_choices(cutoff=self.html_cutoff), cutoff=self.html_cutoff, cutoff_text=self.html_cutoff_text )