diff options
| author | Tom Christie | 2012-10-05 15:44:08 +0100 | 
|---|---|---|
| committer | Tom Christie | 2012-10-05 15:44:08 +0100 | 
| commit | 484ee8cc273eb9769549ee42ee574dc76c77fc02 (patch) | |
| tree | a2ade672eddb8a6d46c66b005b45f3dae8238a59 /rest_framework/fields.py | |
| parent | 3e77090b2142e7802203b5e37f81b5d4cbb6f40d (diff) | |
| download | django-rest-framework-484ee8cc273eb9769549ee42ee574dc76c77fc02.tar.bz2 | |
Add view_name argument to HyperlinkedIdentityField
Diffstat (limited to 'rest_framework/fields.py')
| -rw-r--r-- | rest_framework/fields.py | 9 | 
1 files changed, 8 insertions, 1 deletions
| diff --git a/rest_framework/fields.py b/rest_framework/fields.py index b9ac3776..449b7811 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -378,9 +378,16 @@ class HyperlinkedIdentityField(Field):      """      A field that represents the model's identity using a hyperlink.      """ +    def __init__(self, *args, **kwargs): +        try: +            self.view_name = kwargs.pop('view_name') +        except: +            raise ValueError("Hyperlinked field requires 'view_name' kwarg") +        super(HyperlinkedRelatedField, self).__init__(*args, **kwargs) +      def field_to_native(self, obj, field_name):          request = self.context.get('request', None) -        view_name = self.parent.opts.view_name +        view_name = self.view_name or self.parent.opts.view_name          view_kwargs = {'pk': obj.pk}          return reverse(view_name, kwargs=view_kwargs, request=request) | 
