diff --git a/djangoldp/serializers.py b/djangoldp/serializers.py index 1d7a2720bb450e09743f91e6a6d5dce4b81b9025..8fbd6f2d4733172edc146292ce3e5ef6fa3b2ed1 100644 --- a/djangoldp/serializers.py +++ b/djangoldp/serializers.py @@ -241,7 +241,6 @@ class JsonLdIdentityField(JsonLdField): return super().get_attribute(instance) - class LDPSerializer(HyperlinkedModelSerializer): url_field_name = "@id" serializer_related_field = JsonLdRelatedField @@ -461,6 +460,8 @@ class LDPSerializer(HyperlinkedModelSerializer): serializer = ContainerSerializer(*args, **kwargs) if 'context' in kwargs and getattr(kwargs['context']['view'], 'nested_field', None) is not None: serializer.id = '{}{}/'.format(serializer.id, kwargs['context']['view'].nested_field) + elif 'context' in kwargs: + serializer.id = '{}{}'.format(settings.BASE_URL, kwargs['context']['view'].request.path) return serializer def to_internal_value(self, data): diff --git a/djangoldp/tests/tests_sources.py b/djangoldp/tests/tests_sources.py index e43f3e9457cf9d828da01b85b6531b8e199aeca9..94b58df8823137557a5992075d92ed40b7102620 100644 --- a/djangoldp/tests/tests_sources.py +++ b/djangoldp/tests/tests_sources.py @@ -16,3 +16,9 @@ class TestSource(APITestCase): source = LDPSource.objects.create(federation="source_name", urlid="http://bar.foo/") response = self.client.get('/sources/{}/'.format(source.federation), content_type='application/ld+json') self.assertEqual(response.status_code, 200) + self.assertEqual(response.data['@id'], 'http://happy-dev.fr/sources/source_name/') + + def test_get_empty_resource(self): + response = self.client.get('/sources/{}/'.format('unknown'), content_type='application/ld+json') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.data['@id'], 'http://happy-dev.fr/sources/unknown/') diff --git a/djangoldp/tests/tests_temp.py b/djangoldp/tests/tests_temp.py index ef7792a2a2cb08b941457637778f05cb736becd5..db29aaf1ac404fe7a658ff76062f7a7a794ba502 100644 --- a/djangoldp/tests/tests_temp.py +++ b/djangoldp/tests/tests_temp.py @@ -2,6 +2,9 @@ from django.contrib.auth.models import User from django.test import TestCase from rest_framework.test import APIRequestFactory, APIClient +from djangoldp.models import LDPSource + + class TestTemp(TestCase): def setUp(self): @@ -12,3 +15,4 @@ class TestTemp(TestCase): def tearDown(self): pass +