aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
authorTom Christie2012-10-05 15:44:08 +0100
committerTom Christie2012-10-05 15:44:08 +0100
commit484ee8cc273eb9769549ee42ee574dc76c77fc02 (patch)
treea2ade672eddb8a6d46c66b005b45f3dae8238a59 /rest_framework/fields.py
parent3e77090b2142e7802203b5e37f81b5d4cbb6f40d (diff)
downloaddjango-rest-framework-484ee8cc273eb9769549ee42ee574dc76c77fc02.tar.bz2
Add view_name argument to HyperlinkedIdentityField
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py9
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)