I am working with djoser and upon reading the documentation, I want to alter some parts of the code from Userviewset.
I want to overwrite def me(self, request, *args, **kwargs)
and customize it. For the get request, instead of returning all the fields of the model, I want to return only Username and Profile Picture.
I tried doing from djoser.views import UserViewSet
. Then,
class UserViewSet(viewsets.ModelViewSet):
# from djoser docs which I want to update
@action(["get", "put", "patch", "delete"], detail=False)
def me(self, request, *args, **kwargs):
self.get_object = self.get_instance
if request.method == "GET":
return self.retrieve(request, *args, **kwargs)
elif request.method == "PUT":
return self.update(request, *args, **kwargs)
elif request.method == "PATCH":
return self.partial_update(request, *args, **kwargs)
elif request.method == "DELETE":
return self.destroy(request, *args, **kwargs)
But I wonder this would work since neither retrieve
nor get_instance
are mentioned.
Is there a shorter correct way to do this?