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

bugfix: fixed @id fields

parent 4d63cf2a
No related branches found
No related tags found
No related merge requests found
...@@ -13,27 +13,31 @@ class ContainerSerializer(ListSerializer): ...@@ -13,27 +13,31 @@ class ContainerSerializer(ListSerializer):
def data(self): def data(self):
return ReturnDict(super(ListSerializer, self).data, serializer=self) return ReturnDict(super(ListSerializer, self).data, serializer=self)
class JsonLdRelatedField(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)
#get the field name associated with the url of the view self.get_lookup_args()
def get_lookup_args(self):
try: try:
lookup_field = get_resolver().reverse_dict[self.view_name][0][0][1][0] lookup_field = get_resolver().reverse_dict[self.view_name][0][0][1][0]
self.lookup_field = lookup_field self.lookup_field = lookup_field
self.lookup_url_kwarg = lookup_field self.lookup_url_kwarg = lookup_field
except MultiValueDictKeyError: except MultiValueDictKeyError:
pass pass
class JsonLdRelatedField(JsonLdField):
def to_representation(self, value): def to_representation(self, value):
try: try:
return {'@id': super().to_representation(value)} return {'@id': super().to_representation(value)}
except ImproperlyConfigured: except ImproperlyConfigured:
return value.pk return value.pk
class JsonLdIdentityField(JsonLdRelatedField): class JsonLdIdentityField(JsonLdField):
def __init__(self, view_name=None, **kwargs): def __init__(self, view_name=None, **kwargs):
kwargs['read_only'] = True kwargs['read_only'] = True
kwargs['source'] = '*' kwargs['source'] = '*'
super(JsonLdIdentityField, self).__init__(view_name, **kwargs) super().__init__(view_name, **kwargs)
def use_pk_only_optimization(self): def use_pk_only_optimization(self):
return False return False
......
...@@ -2,7 +2,7 @@ from setuptools import setup ...@@ -2,7 +2,7 @@ from setuptools import setup
setup( setup(
name='djangoldp', name='djangoldp',
version='0.4a1', version='0.4a2',
url='https://git.happy-dev.fr/happy-dev/djangoldp/', url='https://git.happy-dev.fr/happy-dev/djangoldp/',
author="Startin'blox", author="Startin'blox",
author_email='sylvain@happy-dev.fr', author_email='sylvain@happy-dev.fr',
......
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