diff --git a/djangoldp/fields.py b/djangoldp/fields.py
new file mode 100644
index 0000000000000000000000000000000000000000..fb4ba855b788f71f216984e8e1154a38d6879757
--- /dev/null
+++ b/djangoldp/fields.py
@@ -0,0 +1,10 @@
+from django.db import models
+from rest_framework import fields
+
+class IdURLField (fields.URLField):
+    def to_representation(self, value):
+        str = super(IdURLField, self).to_representation(value)
+        return {'@id': str}
+
+class LDPUrlField (models.URLField):
+    pass
diff --git a/djangoldp/models.py b/djangoldp/models.py
index 6e02705c724270e6299eb2010c8d93e383f76e23..151cb7d82b1f0a1765686ec48a24fb42a4744e29 100644
--- a/djangoldp/models.py
+++ b/djangoldp/models.py
@@ -1,7 +1,6 @@
 from django.conf import settings
 from django.db import models
 from django.urls import get_resolver
-from rest_framework import fields
 
 
 class Model(models.Model):
@@ -70,13 +69,6 @@ class Model(models.Model):
             path = "{}/".format(path)
         return path
 
-
-class LDPUrlField (fields.URLField):
-    def to_representation(self, value):
-        str = super(LDPUrlField, self).to_representation(value)
-        return {'@id': str}
-
-
 class LDPSource(models.Model):
     container = models.URLField()
     federation = models.CharField(max_length=255)
diff --git a/djangoldp/serializers.py b/djangoldp/serializers.py
index 8f68daec47f465da5e069173e9d976f2dfb8592a..b3f875f65cdecb70c87cff469f00c5249af5e907 100644
--- a/djangoldp/serializers.py
+++ b/djangoldp/serializers.py
@@ -11,7 +11,7 @@ from rest_framework.exceptions import ValidationError
 from rest_framework.fields import SkipField, empty
 from rest_framework.fields import get_error_detail, set_value
 from rest_framework.relations import HyperlinkedRelatedField, ManyRelatedField, MANY_RELATION_KWARGS
-from rest_framework.serializers import HyperlinkedModelSerializer, ListSerializer
+from rest_framework.serializers import HyperlinkedModelSerializer, ListSerializer, ModelSerializer
 from rest_framework.settings import api_settings
 from rest_framework.utils.field_mapping import get_nested_relation_kwargs
 from rest_framework.utils.serializer_helpers import ReturnDict
@@ -22,8 +22,7 @@ from rest_framework.serializers import HyperlinkedModelSerializer, ListSerialize
 from rest_framework.utils.field_mapping import get_nested_relation_kwargs
 from rest_framework.utils.serializer_helpers import ReturnDict
 
-from django.db import models as django_models
-from djangoldp import models
+from djangoldp.fields import LDPUrlField, IdURLField
 
 class LDListMixin:
     def to_internal_value(self, data):
@@ -169,7 +168,7 @@ class LDPSerializer(HyperlinkedModelSerializer):
     url_field_name = "@id"
     serializer_related_field = JsonLdRelatedField
     serializer_url_field = JsonLdIdentityField
-    ModelSerializer.serializer_field_mapping [django_models.URLField] = models.LDPUrlField
+    ModelSerializer.serializer_field_mapping [LDPUrlField] = IdURLField
 
 
     @property
diff --git a/djangoldp/tests/tests_user_permissions.py b/djangoldp/tests/tests_user_permissions.py
index 3ad30ddd3af62424ec42db1e544fe425ef32f9db..3336aa8f1b31d6f5062e0bd02767e85013bc0e44 100644
--- a/djangoldp/tests/tests_user_permissions.py
+++ b/djangoldp/tests/tests_user_permissions.py
@@ -32,9 +32,16 @@ class TestUserPermissions(TestCase):
         self.assertEqual(response.status_code, 201)
 
     def test_request_options_update_with_user(self):
-        request = self.factory.options('/job-offers/')
+        request = self.factory.options('/job-offers/' + str(self.job.pk) + "/")
         request.user = self.user
         my_view = LDPViewSet.as_view({'options': 'update'}, model=JobOffer, nested_fields=["skills"],
                                      permission_classes=[AnonymousReadOnly])
-        response = my_view(request)
-        self.assertEqual(response.status_code, 201)
+        response = my_view(request, pk=self.job.pk)
+        self.assertEqual(response.status_code, 200)
+
+    def test_request_patch_with_user(self):
+        request = self.factory.patch('/job-offers/' + str(self.job.pk) + "/")
+        request.user = self.user
+        my_view = LDPViewSet.as_view({'patch': 'partial_update'}, model=JobOffer, nested_fields=["skills"])
+        response = my_view(request, pk=self.job.pk)
+        self.assertEqual(response.status_code, 200)
\ No newline at end of file
diff --git a/djangoldp/views.py b/djangoldp/views.py
index f4b2fb59f72c56b898174c6329c7b8f8ee606393..3ccfdf7390087596257aea6ba06969384cf9a911 100644
--- a/djangoldp/views.py
+++ b/djangoldp/views.py
@@ -134,7 +134,7 @@ class LDPViewSet(LDPViewSetGenerator):
     def dispatch(self, request, *args, **kwargs):
         response = super(LDPViewSet, self).dispatch(request, *args, **kwargs)
         response["Access-Control-Allow-Origin"] = request.META.get('HTTP_ORIGIN')
-        response["Access-Control-Allow-Methods"] = "POST,PUT"
+        response["Access-Control-Allow-Methods"] = "POST,PUT, PATCH"
         response["Access-Control-Allow-Headers"] = "Content-Type, if-match"
         response["Access-Control-Allow-Credentials"] = 'true'
         response["Accept-Post"] = "application/ld+json"