added support for custom slug field and kwargs

without subclassing HyperlinkedRelatedField and overwriting
slug_url_kwarg and slug_field there is no possibility to use other
fields / arguments. now you can do something like this:

url(r'^users/(?P<username>\w[\w-]*)$', UserInstance.as_view(),
name='user-detail')

class ProjectSerializer(serializers.HyperlinkedModelSerializer):
    created_by =
serializers.HyperlinkedRelatedField(view_name='user-detail',
slug_url_kwargs='username', slug_field='username')
This commit is contained in:
Stephan Groß 2012-10-31 15:30:01 +01:00
parent de2ef5d9c2
commit ff7725f05e

View File

@ -342,6 +342,8 @@ class HyperlinkedRelatedField(RelatedField):
self.view_name = kwargs.pop('view_name')
except:
raise ValueError("Hyperlinked field requires 'view_name' kwarg")
self.slug_url_kwarg = kwargs.pop('slug_url_kwargs', self.slug_url_kwarg)
self.slug_field = kwargs.pop('slug_field', self.slug_field)
self.format = kwargs.pop('format', None)
super(HyperlinkedRelatedField, self).__init__(*args, **kwargs)