aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
authorTom Christie2012-10-04 11:26:41 +0100
committerTom Christie2012-10-04 11:26:41 +0100
commitd89d6887d2eb8293348cb1a7a043a05352819cb8 (patch)
treea01a3e80ec30a3d96fb45664e6c89f13abc84837 /rest_framework/fields.py
parentad2149767bea4fcd07348ca77f6cad5719a44181 (diff)
downloaddjango-rest-framework-d89d6887d2eb8293348cb1a7a043a05352819cb8.tar.bz2
HyperlinkedModelSerializer with working HyperlinkedIdentityField, but no hyperlinked relations
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index edc77e1a..09ccc4ff 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -9,6 +9,7 @@ from django.conf import settings
from django.db import DEFAULT_DB_ALIAS
from django.utils.encoding import is_protected_type, smart_unicode
from django.utils.translation import ugettext_lazy as _
+from rest_framework.reverse import reverse
from rest_framework.compat import parse_date, parse_datetime
from rest_framework.compat import timezone
@@ -173,6 +174,14 @@ class Field(object):
return {}
+class HyperlinkedIdentityField(Field):
+ def field_to_native(self, obj, field_name):
+ request = self.context.get('request', None)
+ view_name = self.parent.opts.view_name
+ view_kwargs = {'pk': obj.pk}
+ return reverse(view_name, kwargs=view_kwargs, request=request)
+
+
class RelatedField(Field):
"""
A base class for model related fields or related managers.