Testcase and tentative fix for #1237

This commit is contained in:
Peter Inglesby 2014-03-16 14:03:21 +00:00
parent 6cf19fa4ef
commit d6342c13ae
3 changed files with 41 additions and 0 deletions

View File

@ -346,6 +346,7 @@ class HTMLFormRenderer(BaseRenderer):
request = renderer_context['request']
template = loader.get_template(self.template)
data = None if data.empty else data
context = RequestContext(request, {'form': data})
return template.render(context)

View File

@ -340,6 +340,7 @@ class BaseSerializer(WritableField):
"""
ret = self._dict_class()
ret.fields = self._dict_class()
ret.empty = obj is None
for field_name, field in self.fields.items():
if field.read_only and obj is None:

View File

@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
# This is based on https://github.com/kevin-brown/django-rest-framework/compare/issue_1237.
from __future__ import unicode_literals
from django.test import TestCase
from rest_framework.compat import patterns, url
from rest_framework.generics import GenericAPIView
from rest_framework.renderers import BrowsableAPIRenderer
from rest_framework.response import Response
from rest_framework.serializers import Serializer, HyperlinkedRelatedField
from rest_framework.tests.models import Album
class TestSerializer(Serializer):
field = HyperlinkedRelatedField(queryset=Album.objects, view_name="")
class TestView(GenericAPIView):
renderer_classes = (BrowsableAPIRenderer, )
serializer_class = TestSerializer
def post(self, request, **kwargs):
return Response("text")
urlpatterns = patterns('',
url(r"^view/(?P<pk>\d+)$", TestView.as_view(), name="view"),
)
class FailingTestCase(TestCase):
urls = 'rest_framework.tests.test_issue_1237'
def test_issue_1237(self):
album = Album(title="test")
album.save()
response = self.client.post("/view/{0}".format(album.pk))
self.assertEqual(200, response.status_code)