Skip to content
Snippets Groups Projects
Commit 9d1a1d88 authored by Thibaud Duquennoy's avatar Thibaud Duquennoy Committed by Jean-Baptiste
Browse files

Bug Fixes: Url ID field

Fix bugs: URLField represents ids of resources
parent a13b1f21
No related branches found
No related tags found
No related merge requests found
from django.conf import settings from django.conf import settings
from django.db import models from django.db import models
from django.urls import get_resolver from django.urls import get_resolver
from rest_framework import fields
class Model(models.Model): class Model(models.Model):
...@@ -70,6 +71,12 @@ class Model(models.Model): ...@@ -70,6 +71,12 @@ class Model(models.Model):
return 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): class LDPSource(models.Model):
container = models.URLField() container = models.URLField()
federation = models.CharField(max_length=255) federation = models.CharField(max_length=255)
......
...@@ -18,6 +18,12 @@ from rest_framework.utils.serializer_helpers import ReturnDict ...@@ -18,6 +18,12 @@ from rest_framework.utils.serializer_helpers import ReturnDict
from djangoldp.models import Model from djangoldp.models import Model
from rest_framework.serializers import HyperlinkedModelSerializer, ListSerializer, ModelSerializer
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
class LDListMixin: class LDListMixin:
def to_internal_value(self, data): def to_internal_value(self, data):
...@@ -163,6 +169,8 @@ class LDPSerializer(HyperlinkedModelSerializer): ...@@ -163,6 +169,8 @@ class LDPSerializer(HyperlinkedModelSerializer):
url_field_name = "@id" url_field_name = "@id"
serializer_related_field = JsonLdRelatedField serializer_related_field = JsonLdRelatedField
serializer_url_field = JsonLdIdentityField serializer_url_field = JsonLdIdentityField
ModelSerializer.serializer_field_mapping [django_models.URLField] = models.LDPUrlField
@property @property
def data(self): def data(self):
......
...@@ -36,6 +36,7 @@ class TestUserPermissions (TestCase): ...@@ -36,6 +36,7 @@ class TestUserPermissions (TestCase):
response = my_view(request) response = my_view(request)
self.assertEqual(response.status_code, 201) self.assertEqual(response.status_code, 201)
class TestAnonymousUserPermissions (TestCase): class TestAnonymousUserPermissions (TestCase):
def setUp(self): def setUp(self):
self.factory = RequestFactory() self.factory = RequestFactory()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment