diff --git a/djangoldp/serializers.py b/djangoldp/serializers.py
index eb6170b6cbc1f2f2514b9ef45e2dd2188895f742..a9eee01c855a0c33e51c3af9db30d3f72537a9b4 100644
--- a/djangoldp/serializers.py
+++ b/djangoldp/serializers.py
@@ -226,6 +226,12 @@ class JsonLdField(HyperlinkedRelatedField):
         super().__init__(view_name, **kwargs)
         self.get_lookup_args()
 
+    def get_url(self, obj, view_name, request, format):
+        '''Overridden from DRF to shortcut on urlid-holding objects'''
+        if hasattr(obj, 'urlid') and obj.urlid not in (None, ''):
+            return obj.urlid
+        return super().get_url(obj, view_name, request, format)
+
     def get_lookup_args(self):
         try:
             lookup_field = get_resolver().reverse_dict[self.view_name][0][0][1][0]
diff --git a/djangoldp/tests/tests_get.py b/djangoldp/tests/tests_get.py
index 5e93f212ee7411bb9e1262674a1a4c9b240f8828..96baf36e5e287d835eba632d20eea34f95f19cd9 100644
--- a/djangoldp/tests/tests_get.py
+++ b/djangoldp/tests/tests_get.py
@@ -1,9 +1,9 @@
 from djangoldp.serializers import LDListMixin, LDPSerializer
-from rest_framework.test import APIRequestFactory, APIClient, APITestCase
+from django.contrib.auth import get_user_model
 from datetime import datetime
 from rest_framework.test import APIRequestFactory, APIClient, APITestCase
 
-from djangoldp.tests.models import Post, Invoice, JobOffer, Skill, Batch, DateModel
+from djangoldp.tests.models import Post, Invoice, JobOffer, Skill, Batch, DateModel, UserProfile
 
 
 class TestGET(APITestCase):
@@ -24,6 +24,17 @@ class TestGET(APITestCase):
         self.assertEquals(response.data['content'], "content")
         self.assertIn('author', response.data)
 
+    # TODO: https://git.startinblox.com/djangoldp-packages/djangoldp/issues/293
+    '''def test_get_resource_urlid(self):
+        user = get_user_model().objects.create_user(username='john', email='jlennon@beatles.com',
+                                                    password='glass onion')
+        UserProfile.objects.create(user=user)
+        post = Post.objects.create(content="content", author=user.userprofile)
+        response = self.client.get('/posts/{}/'.format(post.pk), content_type='application/ld+json')
+        self.assertEqual(response.status_code, 200)
+        self.assertEquals(response.data['content'], "content")
+        self.assertEqual(response.data['author'], user.userprofile.urlid)'''
+
     def test_get_container(self):
         Post.objects.create(content="content")
         # federated object - should not be returned in the container view
@@ -81,7 +92,7 @@ class TestGET(APITestCase):
         response = self.client.get('/job-offers/{}/'.format(job.slug), content_type='application/ld+json')
         self.assertEqual(response.status_code, 200)
         self.assertIn('some_skill', response.data)
-        self.assertEqual(response.data['some_skill']['@id'], "http://testserver/skills/1/")
+        self.assertEqual(response.data['some_skill']['@id'], skill.urlid)
 
     def test_get_nested(self):
         invoice = Invoice.objects.create(title="invoice")
diff --git a/djangoldp/tests/tests_save.py b/djangoldp/tests/tests_save.py
index 7a7dbeb3b9059be91bde8ae3127c5a48a6dfa63c..92255e46536e3b3147266aa179b9a32a9153757a 100644
--- a/djangoldp/tests/tests_save.py
+++ b/djangoldp/tests/tests_save.py
@@ -282,8 +282,7 @@ class Save(TestCase):
                                     data=json.dumps(body),
                                     content_type='application/ld+json')
         self.assertEqual(response.status_code, 201)
-        self.assertEqual(response.data['resources']['ldp:contains'][0]['@id'],
-                         "http://testserver/resources/{}/".format(resource.pk))
+        self.assertEqual(response.data['resources']['ldp:contains'][0]['@id'], resource.urlid)
         self.assertEqual(response.data['title'], "new job")
 
 
@@ -317,8 +316,9 @@ class Save(TestCase):
                                     data=json.dumps(body),
                                     content_type='application/ld+json')
         self.assertEqual(response.status_code, 201)
-        self.assertEqual(response.data['circle']['@id'],
-                     "http://testserver/circles/{}/".format(circle.pk))
+        self.assertEqual(response.data['circle']['@id'], "http://testserver/circles/{}/".format(circle.pk))
+        # TODO: https://git.startinblox.com/djangoldp-packages/djangoldp/issues/293
+        # self.assertEqual(response.data['circle']['@id'], circle.urlid)
 
     def test_nested_container_federated(self):
         resource = Resource.objects.create()
@@ -330,8 +330,7 @@ class Save(TestCase):
                                     data=json.dumps(body),
                                     content_type='application/ld+json')
         self.assertEqual(response.status_code, 201)
-        self.assertEqual(response.data['resources']['ldp:contains'][0]['@id'],
-                         "http://testserver/resources/{}/".format(resource.pk))
+        self.assertEqual(response.data['resources']['ldp:contains'][0]['@id'], resource.urlid)
         self.assertEqual(response.data['@id'], "http://external.job/job/1")
 
     def test_embedded_context_2(self):
@@ -388,6 +387,5 @@ class Save(TestCase):
                                     data=json.dumps(body),
                                     content_type='application/ld+json')
         self.assertEqual(response.status_code, 201)
-        self.assertEqual(response.data['projects']['ldp:contains'][0]['@id'],
-                         "http://testserver/projects/{}/".format(project.pk))
+        self.assertEqual(response.data['projects']['ldp:contains'][0]['@id'], project.urlid)
         self.assertEqual(response.data['@id'], "http://external.user/user/1/")