diff --git a/beat/web/common/api.py b/beat/web/common/api.py
index cb0ebdbb0c9a3662897aec6dc7f704c444fc1703..845640280435293081aeeac77d825fa8f0bfc90e 100644
--- a/beat/web/common/api.py
+++ b/beat/web/common/api.py
@@ -235,6 +235,11 @@ class RetrieveUpdateDestroyContributionView(
 ):
     model = Contribution
 
+    def get_serializer(self, *args, **kwargs):
+        if self.request.method == "PUT":
+            self.serializer_class = self.writing_serializer_class
+        return super().get_serializer(*args, **kwargs)
+
     def get_object(self):
         version = self.kwargs["version"]
         author_name = self.kwargs["author_name"]