Merge pull request #2580 from jpadilla/master

Fixes HiddenField being rendered in HTMLFormRenderer
This commit is contained in:
Carlton Gibson 2015-02-20 13:00:46 +01:00
commit dc8cc86077
2 changed files with 18 additions and 2 deletions

View File

@ -305,7 +305,7 @@ class HTMLFormRenderer(BaseRenderer):
}) })
def render_field(self, field, parent_style): def render_field(self, field, parent_style):
if isinstance(field, serializers.HiddenField): if isinstance(field._field, serializers.HiddenField):
return '' return ''
style = dict(self.default_style[field]) style = dict(self.default_style[field])

View File

@ -10,7 +10,10 @@ from rest_framework import status, permissions
from rest_framework.compat import OrderedDict from rest_framework.compat import OrderedDict
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.views import APIView from rest_framework.views import APIView
from rest_framework.renderers import BaseRenderer, JSONRenderer, BrowsableAPIRenderer from rest_framework import serializers
from rest_framework.renderers import (
BaseRenderer, JSONRenderer, BrowsableAPIRenderer, HTMLFormRenderer
)
from rest_framework.settings import api_settings from rest_framework.settings import api_settings
from rest_framework.test import APIRequestFactory from rest_framework.test import APIRequestFactory
from collections import MutableMapping from collections import MutableMapping
@ -455,3 +458,16 @@ class TestJSONIndentationStyles:
renderer.compact = False renderer.compact = False
data = OrderedDict([('a', 1), ('b', 2)]) data = OrderedDict([('a', 1), ('b', 2)])
assert renderer.render(data) == b'{"a": 1, "b": 2}' assert renderer.render(data) == b'{"a": 1, "b": 2}'
class TestHiddenFieldHTMLFormRenderer(TestCase):
def test_hidden_field_rendering(self):
class TestSerializer(serializers.Serializer):
published = serializers.HiddenField(default=True)
serializer = TestSerializer(data={})
serializer.is_valid()
renderer = HTMLFormRenderer()
field = serializer['published']
rendered = renderer.render_field(field, {})
assert rendered == ''