diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-09-25 19:32:03 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-09-25 19:36:50 +0200 |
commit | 4a86ab7600a5e21564c28acc0c3d87aa987850d8 (patch) | |
tree | 634f96b84060d5303745e4cf151d3cebba9a221f /ishtar_common | |
parent | 594c025a3f66c699f4b2a7add12781b7b6ad03e7 (diff) | |
download | Ishtar-4a86ab7600a5e21564c28acc0c3d87aa987850d8.tar.bz2 Ishtar-4a86ab7600a5e21564c28acc0c3d87aa987850d8.zip |
🐛 Federation: put absolute url for ressources
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/models_common.py | 14 | ||||
-rw-r--r-- | ishtar_common/rest.py | 2 |
2 files changed, 8 insertions, 8 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py index 4ab97cf58..2074aa523 100644 --- a/ishtar_common/models_common.py +++ b/ishtar_common/models_common.py @@ -2469,7 +2469,7 @@ class GeoVectorData(Imported, OwnPerms): SERIALIZE_EXCLUDE = [] - def full_serialize(self, search_model, recursion=False): + def full_serialize(self, search_model, recursion=False, request=None): dct = {} fields = [ "id", @@ -3134,7 +3134,7 @@ class SerializeItem: SERIALIZATION_FILES = [] SERIALIZE_STRING = [] - def full_serialize(self, search_model=None, recursion=False) -> dict: + def full_serialize(self, search_model=None, recursion=False, request=None) -> dict: """ API serialization :return: data dict @@ -3172,10 +3172,10 @@ class SerializeItem: # print(field.name, self.__class__, self) if field_name == "main_geodata" and no_geodata: continue - value = value.full_serialize(search_model, recursion=True) + value = value.full_serialize(search_model, recursion=True, request=request) elif field_name in self.SERIALIZATION_FILES: try: - value = {"url": value.url} + value = {"url": request.build_absolute_uri(value.url)} except ValueError: value = None else: @@ -3196,7 +3196,7 @@ class SerializeItem: ): # print(field.name, self.__class__, self) values = [ - v.full_serialize(search_model, recursion=True) + v.full_serialize(search_model, recursion=True, request=request) for v in values.all() ] else: @@ -3204,7 +3204,7 @@ class SerializeItem: values = [] for v in values: try: - values.append({"url": v.url}) + values.append({"url": request.build_absolute_uri(v.url)}) except ValueError: pass else: @@ -3216,7 +3216,7 @@ class SerializeItem: if field_name in self.SERIALIZATION_FILES: value = getattr(self, field_name) try: - value = {"url": value.url} + value = {"url": request.build_absolute_uri(value.url)} except ValueError: value = None full_result[field.name] = value diff --git a/ishtar_common/rest.py b/ishtar_common/rest.py index 08fc2dc36..0a831634a 100644 --- a/ishtar_common/rest.py +++ b/ishtar_common/rest.py @@ -256,5 +256,5 @@ class GetAPIView(generics.RetrieveAPIView): if not q.count(): return Response({}, content_type="json") obj = q.all()[0] - result = obj.full_serialize(search_model) + result = obj.full_serialize(search_model, request=request) return Response(result, content_type="json") |