From c721413209525c0a00bd51f266c27e87d48cc8e2 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sat, 6 Apr 2019 20:07:33 -0400 Subject: [PATCH] Insert API context external object automatically Signed-off-by: Roberto Rosario --- mayan/apps/rest_api/mixins.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/mayan/apps/rest_api/mixins.py b/mayan/apps/rest_api/mixins.py index d7f1d95cdb..91653d6222 100644 --- a/mayan/apps/rest_api/mixins.py +++ b/mayan/apps/rest_api/mixins.py @@ -11,7 +11,9 @@ from mayan.apps.common.mixins import ExternalObjectMixin class ExternalObjectAPIViewSetMixin(ExternalObjectMixin): - """Override get_external_object to use REST API get_object_or_404""" + """ + Override get_external_object to use REST API get_object_or_404. + """ def dispatch(self, *args, **kwargs): return super(ExternalObjectMixin, self).dispatch(*args, **kwargs) @@ -21,6 +23,20 @@ class ExternalObjectAPIViewSetMixin(ExternalObjectMixin): **self.get_pk_url_kwargs() ) + def get_serializer_context(self): + """ + Add the external object to the serializer context. Useful for the + create action when there is no instance available. + """ + context = super(ExternalObjectAPIViewSetMixin, self).get_serializer_context() + if self.kwargs: + context.update( + { + 'external_object': self.get_external_object(), + } + ) + + return context class ExternalObjectListSerializerMixin(object): """