From afd63074ddab5b17f63339fe3e5bf4285fc03285 Mon Sep 17 00:00:00 2001 From: sjb933 Date: Wed, 12 Feb 2014 20:25:10 -0600 Subject: [PATCH] Added hyperlinking support to nested fields. Overrode the base get_nested_fields() method in ModelSerializer, to allow for hyperlinking in nested children of the HyperlinkingModelSerializer. --- rest_framework/serializers.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 10256d479..5f2716436 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -1107,3 +1107,16 @@ class HyperlinkedModelSerializer(ModelSerializer): 'model_name': model_meta.object_name.lower() } return self._default_view_name % format_kwargs + + def get_nested_field(self, model_field, related_model, to_many): + """ + Creates a default instance of a hyperlinked nested relational field. + + Note that model_field will be `None` for reverse relationships. + """ + class NestedHyperlinkedModelSerializer(HyperlinkedModelSerializer): + class Meta: + model = related_model + depth = self.opts.depth - 1 + + return NestedHyperlinkedModelSerializer(many=to_many)