diff options
| author | Stephan Groß | 2012-10-31 15:30:01 +0100 | 
|---|---|---|
| committer | Stephan Groß | 2012-10-31 15:30:01 +0100 | 
| commit | ff7725f05e8ca624e54d707f7c655e3d5c8b8888 (patch) | |
| tree | ca01f596ac1bc41ac320b3915754dd742cc8dda2 /rest_framework | |
| parent | de2ef5d9c24171eb6b945b7822eac809c099fec9 (diff) | |
| download | django-rest-framework-ff7725f05e8ca624e54d707f7c655e3d5c8b8888.tar.bz2 | |
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')
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/fields.py | 2 | 
1 files changed, 2 insertions, 0 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 1d6d760e..63e15923 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -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)  | 
