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 | |
| parent | 3e77090b2142e7802203b5e37f81b5d4cbb6f40d (diff) | |
| download | django-rest-framework-484ee8cc273eb9769549ee42ee574dc76c77fc02.tar.bz2 | |
Add view_name argument to HyperlinkedIdentityField
Diffstat (limited to 'rest_framework')
| -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) |
