From f3ac50b135816de4bfb9c27a0c5b207e11e112f4 Mon Sep 17 00:00:00 2001 From: Sylvain Le Bon <sylvain@happy-dev.fr> Date: Mon, 4 Jun 2018 19:01:49 +0200 Subject: [PATCH] bugfix: fixed @id fields --- djangoldp/serializers.py | 12 ++++++++---- setup.py | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/djangoldp/serializers.py b/djangoldp/serializers.py index ef684a99..6fbf3082 100644 --- a/djangoldp/serializers.py +++ b/djangoldp/serializers.py @@ -13,27 +13,31 @@ class ContainerSerializer(ListSerializer): def data(self): return ReturnDict(super(ListSerializer, self).data, serializer=self) -class JsonLdRelatedField(HyperlinkedRelatedField): +class JsonLdField(HyperlinkedRelatedField): def __init__(self, view_name=None, **kwargs): super().__init__(view_name, **kwargs) - #get the field name associated with the url of the view + self.get_lookup_args() + + def get_lookup_args(self): try: lookup_field = get_resolver().reverse_dict[self.view_name][0][0][1][0] self.lookup_field = lookup_field self.lookup_url_kwarg = lookup_field except MultiValueDictKeyError: pass + +class JsonLdRelatedField(JsonLdField): def to_representation(self, value): try: return {'@id': super().to_representation(value)} except ImproperlyConfigured: return value.pk -class JsonLdIdentityField(JsonLdRelatedField): +class JsonLdIdentityField(JsonLdField): def __init__(self, view_name=None, **kwargs): kwargs['read_only'] = True kwargs['source'] = '*' - super(JsonLdIdentityField, self).__init__(view_name, **kwargs) + super().__init__(view_name, **kwargs) def use_pk_only_optimization(self): return False diff --git a/setup.py b/setup.py index 4291b773..a815cec2 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup setup( name='djangoldp', - version='0.4a1', + version='0.4a2', url='https://git.happy-dev.fr/happy-dev/djangoldp/', author="Startin'blox", author_email='sylvain@happy-dev.fr', -- GitLab