initializing related fields with namespace

allows to drop self.parent.opts.view_namespace access in to_native
This commit is contained in:
Ludwig Kraatz 2012-12-04 15:44:25 +01:00
parent 28a5b73c25
commit f84f256caa
2 changed files with 5 additions and 3 deletions

View File

@ -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}

View File

@ -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)