feat: Views to cache discovered serializer

ref: #471 #511
This commit is contained in:
2025-01-31 22:09:11 +09:30
parent 49088f1f68
commit c5eb26e62b
38 changed files with 430 additions and 109 deletions

View File

@ -94,13 +94,22 @@ class ViewSet( ModelViewSet ):
def get_serializer_class(self):
if self.serializer_class:
return self.serializer_class
if (
self.action == 'list'
or self.action == 'retrieve'
):
return globals()[str( self.model._meta.verbose_name).replace(' ', '') + 'ViewSerializer']
self.serializer_class = globals()[str( self.model._meta.verbose_name).replace(' ' , '') + 'ViewSerializer']
else:
self.serializer_class = globals()[str( self.model._meta.verbose_name).replace(' ' , '') + 'ModelSerializer']
return globals()[str( self.model._meta.verbose_name).replace(' ', '') + 'ModelSerializer']
return self.serializer_class

View File

@ -86,13 +86,22 @@ class ViewSet( ModelViewSet ):
def get_serializer_class(self):
if self.serializer_class:
return self.serializer_class
if (
self.action == 'list'
or self.action == 'retrieve'
):
return globals()[str( self.model._meta.verbose_name).replace(' ', '') + 'ViewSerializer']
self.serializer_class = globals()[str( self.model._meta.verbose_name).replace(' ' , '') + 'ViewSerializer']
else:
self.serializer_class = globals()[str( self.model._meta.verbose_name).replace(' ' , '') + 'ModelSerializer']
return globals()[str( self.model._meta.verbose_name).replace(' ', '') + 'ModelSerializer']
return self.serializer_class