diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 634338e9e..aa6ef15bd 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -449,6 +449,11 @@ class HTMLFormRenderer(BaseRenderer): else: template_name = style['template_pack'].strip('/') + '/' + style['base_template'] + # Remove hidden fields from serializer before rendering + for field in form.fields: + if isinstance(form.fields[field], serializers.HiddenField): + form.fields.pop(field) + renderer_context = renderer_context or {} request = renderer_context['request'] template = loader.get_template(template_name) @@ -625,6 +630,11 @@ class BrowsableAPIRenderer(BaseRenderer): else: serializer = view.get_serializer() + # Remove hidden fields from serializer before rendering + for field in serializer.fields: + if isinstance(serializer.fields[field], serializers.HiddenField): + serializer.fields.pop(field) + # Render the raw data content renderer = renderer_class() accepted = self.accepted_media_type