From 677caf2167f436ff707404646260ac85d88b0681 Mon Sep 17 00:00:00 2001 From: Calum Mackervoy <c.mackervoy@gmail.com> Date: Tue, 22 Sep 2020 11:01:28 +0000 Subject: [PATCH] update: changed build_serializer to allow for easier overriding of serializer_class --- djangoldp/views.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/djangoldp/views.py b/djangoldp/views.py index 09d0a543..a9c87bd0 100644 --- a/djangoldp/views.py +++ b/djangoldp/views.py @@ -358,7 +358,6 @@ class LDPViewSet(LDPViewSetGenerator): parser_classes = (JSONLDParser,) authentication_classes = (NoCSRFAuthentication,) filter_backends = [LocalObjectOnContainerPathBackend] - write_serializer_class = None def __init__(self, **kwargs): super().__init__(**kwargs) @@ -369,10 +368,8 @@ class LDPViewSet(LDPViewSetGenerator): if hasattr(p, 'filter_class') and p.filter_class: self.filter_backends.append(p.filter_class) - if self.serializer_class is None: - self.serializer_class = self.build_read_serializer() - if self.write_serializer_class is None: - self.write_serializer_class = self.build_write_serializer() + self.serializer_class = self.build_read_serializer() + self.write_serializer_class = self.build_write_serializer() def build_read_serializer(self): model_name = self.model._meta.object_name.lower() @@ -402,11 +399,14 @@ class LDPViewSet(LDPViewSetGenerator): def build_serializer(self, meta_args, name_prefix): # create the Meta class to associate to LDPSerializer, using meta_args param - meta_class = type('Meta', (), meta_args) from djangoldp.serializers import LDPSerializer - return type(LDPSerializer)(self.model._meta.object_name.lower() + name_prefix + 'Serializer', (LDPSerializer,), + + if self.serializer_class is None: + self.serializer_class = LDPSerializer + + return type(LDPSerializer)(self.model._meta.object_name.lower() + name_prefix + 'Serializer', (self.serializer_class,), {'Meta': meta_class}) def is_safe_create(self, user, validated_data, *args, **kwargs): -- GitLab