From 6a7296af52a5dd02b9726c1d78784c6d8cb3133e Mon Sep 17 00:00:00 2001
From: Christophe Henry <contact@c-henry.fr>
Date: Tue, 5 Nov 2019 15:15:33 +0100
Subject: [PATCH] bugfix: Do not erase @context during serialisation when
 already defined (startinblox/djangoldp-packages/djangoldp#153)

---
 djangoldp/views.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/djangoldp/views.py b/djangoldp/views.py
index 748751fc..4ed03f87 100644
--- a/djangoldp/views.py
+++ b/djangoldp/views.py
@@ -25,8 +25,14 @@ class JSONLDRenderer(JSONRenderer):
     media_type = 'application/ld+json'
 
     def render(self, data, accepted_media_type=None, renderer_context=None):
-        if data is not None:
-            data["@context"] = settings.LDP_RDF_CONTEXT
+        if isinstance(data, dict):
+            context = data.get("@context")
+            if isinstance(context, list):
+                data["@context"] = [settings.LDP_RDF_CONTEXT] + context
+            elif isinstance(context, str) or isinstance(context, dict):
+                data["@context"] = [settings.LDP_RDF_CONTEXT, context]
+            else:
+                data["@context"] = settings.LDP_RDF_CONTEXT
         return super(JSONLDRenderer, self).render(data, accepted_media_type, renderer_context)
 
 
-- 
GitLab