Skip to content
Snippets Groups Projects
Commit 63e5db0d authored by Sylvain Le Bon's avatar Sylvain Le Bon
Browse files

bugfix: fixed error on lists

parent 4f113112
No related branches found
No related tags found
No related merge requests found
...@@ -8,8 +8,7 @@ from rest_framework.utils.serializer_helpers import ReturnDict ...@@ -8,8 +8,7 @@ from rest_framework.utils.serializer_helpers import ReturnDict
from rest_framework.utils.field_mapping import get_nested_relation_kwargs from rest_framework.utils.field_mapping import get_nested_relation_kwargs
from guardian.shortcuts import get_perms from guardian.shortcuts import get_perms
class ContainerSerializer(ListSerializer): class LDListMixin:
id=''
def to_internal_value(self, data): def to_internal_value(self, data):
data = json.loads(data) data = json.loads(data)
if isinstance(data, dict): if isinstance(data, dict):
...@@ -23,10 +22,16 @@ class ContainerSerializer(ListSerializer): ...@@ -23,10 +22,16 @@ class ContainerSerializer(ListSerializer):
parent_id = parent_id_field.get_url(instance, parent_id_field.view_name, context['request'], context['format']) parent_id = parent_id_field.get_url(instance, parent_id_field.view_name, context['request'], context['format'])
self.id = parent_id + self.field_name+"/" self.id = parent_id + self.field_name+"/"
return super().get_attribute(instance) return super().get_attribute(instance)
class ContainerSerializer(LDListMixin, ListSerializer):
id=''
@property @property
def data(self): def data(self):
return ReturnDict(super(ListSerializer, self).data, serializer=self) return ReturnDict(super(ListSerializer, self).data, serializer=self)
class ManyJsonLdRelatedField(LDListMixin, ManyRelatedField):
pass
class JsonLdField(HyperlinkedRelatedField): class JsonLdField(HyperlinkedRelatedField):
def __init__(self, view_name=None, **kwargs): def __init__(self, view_name=None, **kwargs):
super().__init__(view_name, **kwargs) super().__init__(view_name, **kwargs)
...@@ -59,7 +64,7 @@ class JsonLdRelatedField(JsonLdField): ...@@ -59,7 +64,7 @@ class JsonLdRelatedField(JsonLdField):
for key in kwargs: for key in kwargs:
if key in MANY_RELATION_KWARGS: if key in MANY_RELATION_KWARGS:
list_kwargs[key] = kwargs[key] list_kwargs[key] = kwargs[key]
return ContainerSerializer(**list_kwargs) return ManyJsonLdRelatedField(**list_kwargs)
class JsonLdIdentityField(JsonLdField): class JsonLdIdentityField(JsonLdField):
def __init__(self, view_name=None, **kwargs): def __init__(self, view_name=None, **kwargs):
......
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