mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-05 21:10:13 +03:00
Allow serializer kwargs to be customized
This modifies the base generic view to call `get_serializer_kwargs`, allowing custom kwargs to be passed into the serializer without requiring that the entire `get_serializer` method is overridden.
This commit is contained in:
parent
b61cef435e
commit
293d195011
|
@ -90,6 +90,11 @@ class GenericAPIView(views.APIView):
|
||||||
'view': self
|
'view': self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def get_serializer_kwargs(self, **kwargs):
|
||||||
|
kwargs["context"] = self.get_serializer_context()
|
||||||
|
|
||||||
|
return kwargs
|
||||||
|
|
||||||
def get_serializer(self, instance=None, data=None,
|
def get_serializer(self, instance=None, data=None,
|
||||||
files=None, many=False, partial=False):
|
files=None, many=False, partial=False):
|
||||||
"""
|
"""
|
||||||
|
@ -97,9 +102,18 @@ class GenericAPIView(views.APIView):
|
||||||
deserializing input, and for serializing output.
|
deserializing input, and for serializing output.
|
||||||
"""
|
"""
|
||||||
serializer_class = self.get_serializer_class()
|
serializer_class = self.get_serializer_class()
|
||||||
context = self.get_serializer_context()
|
|
||||||
return serializer_class(instance, data=data, files=files,
|
kwargs_dict = {
|
||||||
many=many, partial=partial, context=context)
|
"instance": instance,
|
||||||
|
"data": data,
|
||||||
|
"files": files,
|
||||||
|
"many": many,
|
||||||
|
"partial": partial,
|
||||||
|
}
|
||||||
|
|
||||||
|
kwargs = self.get_serializer_kwargs(**kwargs_dict)
|
||||||
|
|
||||||
|
return serializer_class(**kwargs)
|
||||||
|
|
||||||
def get_pagination_serializer(self, page):
|
def get_pagination_serializer(self, page):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user