From f84f256caa92d39fb31e773844851f1bc182ce0b Mon Sep 17 00:00:00 2001 From: Ludwig Kraatz Date: Tue, 4 Dec 2012 15:44:25 +0100 Subject: [PATCH] initializing related fields with namespace allows to drop self.parent.opts.view_namespace access in to_native --- rest_framework/fields.py | 4 ++-- rest_framework/serializers.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 1dd666a3c..969800b00 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -547,7 +547,7 @@ class HyperlinkedRelatedField(RelatedField): return self.slug_field def to_native(self, obj): - view_namespace = self.view_namespace or getattr(self.parent.opts, 'view_namespace', None) + view_namespace = self.view_namespace view_name = self.view_name if view_namespace: view_name = '%(namespace)s:%(name)s' % {'namespace': view_namespace, 'name': view_name} @@ -659,7 +659,7 @@ class HyperlinkedIdentityField(Field): def field_to_native(self, obj, field_name): request = self.context.get('request', None) format = self.format or self.context.get('format', None) - view_namespace = self.view_namespace or getattr(self.parent.opts, 'view_namespace', None) + view_namespace = self.view_namespace view_name = self.view_name if view_namespace: view_name = '%(namespace)s:%(name)s' % {'namespace': view_namespace, 'name': view_name} diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index a15b4ef67..b14ce477b 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -560,7 +560,9 @@ class HyperlinkedModelSerializer(ModelSerializer): queryset = rel._default_manager kwargs = { 'queryset': queryset, - 'view_name': self._get_default_view_name(rel) + 'view_name': self._get_default_view_name(rel), + # TODO? offer possibility to init related fields with custom namespaces + 'view_namespace': getattr(self.opts, 'view_namespace', None) } if to_many: return ManyHyperlinkedRelatedField(**kwargs)