From ad99b8e2531cbd8fb7c17ad7460da4aa43c8160b Mon Sep 17 00:00:00 2001 From: MohamadReza Taalebi <33086212+mrtaalebi@users.noreply.github.com> Date: Tue, 28 Jan 2020 03:38:31 +0330 Subject: [PATCH] Assert context not in kwargs Raise and AssertionError whenever a `context` argument is passed to the `get_serializer` --- rest_framework/generics.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/rest_framework/generics.py b/rest_framework/generics.py index 493bd2b45..a2b13b6cf 100644 --- a/rest_framework/generics.py +++ b/rest_framework/generics.py @@ -106,14 +106,13 @@ class GenericAPIView(views.APIView): deserializing input, and for serializing output. """ serializer_class = self.get_serializer_class() - - # Include view's custom context - default_context = self.get_serializer_context() - if 'context' in kwargs: - kwargs['context'].update(default_context) - else: - kwargs['context'] = default_context - + + assert 'context' not in kwargs, ( + "`get_serializer` does not accept a `context` argument, " + "you may override `get_serializer_context` instead." + ) + kwargs['context'] = self.get_serializer_context() + return serializer_class(*args, **kwargs) def get_serializer_class(self):