Skip to content
Snippets Groups Projects
Commit 5404fcce authored by Jean-Baptiste's avatar Jean-Baptiste
Browse files

syntax: refactor to use Model utilities functions

parent 3908a5e1
No related branches found
No related tags found
1 merge request!24Resolve "Get URL of saved resource from its model"
Pipeline #739 passed
...@@ -16,6 +16,8 @@ from rest_framework.settings import api_settings ...@@ -16,6 +16,8 @@ from rest_framework.settings import api_settings
from rest_framework.utils.field_mapping import get_nested_relation_kwargs from rest_framework.utils.field_mapping import get_nested_relation_kwargs
from rest_framework.utils.serializer_helpers import ReturnDict from rest_framework.utils.serializer_helpers import ReturnDict
from djangoldp.models import Model
class LDListMixin: class LDListMixin:
def to_internal_value(self, data): def to_internal_value(self, data):
...@@ -40,9 +42,8 @@ class LDListMixin: ...@@ -40,9 +42,8 @@ class LDListMixin:
def get_value(self, dictionary): def get_value(self, dictionary):
try: try:
object_list = dictionary["@graph"] object_list = dictionary["@graph"]
view_name = '{}-list'.format(self.parent.Meta.model._meta.object_name.lower()) container_id = Model.container_id(self.parent.instance)
part_id = '/{}'.format(get_resolver().reverse_dict[view_name][0][0][0]) obj = next(filter(lambda o: container_id in o['@id'], object_list))
obj = next(filter(lambda o: part_id in o['@id'], object_list))
list = super().get_value(obj) list = super().get_value(obj)
try: try:
list = next(filter(lambda o: list['@id'] == o['@id'], object_list)) list = next(filter(lambda o: list['@id'] == o['@id'], object_list))
...@@ -197,9 +198,8 @@ class LDPSerializer(HyperlinkedModelSerializer): ...@@ -197,9 +198,8 @@ class LDPSerializer(HyperlinkedModelSerializer):
def get_value(self, dictionary): def get_value(self, dictionary):
try: try:
object_list = dictionary["@graph"] object_list = dictionary["@graph"]
part_id = '/{}'.format(get_resolver().reverse_dict[self.parent_view_name][0][0][0], resource_id = Model.resource_id(self.parent.instance)
self.parent.instance.pk) obj = next(filter(lambda o: resource_id in o['@id'], object_list))
obj = next(filter(lambda o: part_id in o['@id'], object_list))
return super().get_value(obj) return super().get_value(obj)
except KeyError: except KeyError:
return super().get_value(dictionary) return super().get_value(dictionary)
...@@ -288,10 +288,8 @@ class LDPSerializer(HyperlinkedModelSerializer): ...@@ -288,10 +288,8 @@ class LDPSerializer(HyperlinkedModelSerializer):
def get_value(self, dictionary): def get_value(self, dictionary):
try: try:
object_list = dictionary["@graph"] object_list = dictionary["@graph"]
view_name = '{}-list'.format(self.parent.Meta.model._meta.object_name.lower()) container_id = Model.container_path(self.parent.instance)
part_id = '/{}'.format(get_resolver().reverse_dict[view_name][0][0][0], obj = next(filter(lambda o: container_id in o[self.url_field_name], object_list))
self.parent.instance.pk)
obj = next(filter(lambda o: part_id in o[self.url_field_name], object_list))
item = super().get_value(obj) item = super().get_value(obj)
full_item = None full_item = None
if item is empty: if item is empty:
......
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