mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-03 20:10:10 +03:00
Testcase and tentative fix for #1237
This commit is contained in:
parent
6cf19fa4ef
commit
d6342c13ae
|
@ -346,6 +346,7 @@ class HTMLFormRenderer(BaseRenderer):
|
||||||
request = renderer_context['request']
|
request = renderer_context['request']
|
||||||
|
|
||||||
template = loader.get_template(self.template)
|
template = loader.get_template(self.template)
|
||||||
|
data = None if data.empty else data
|
||||||
context = RequestContext(request, {'form': data})
|
context = RequestContext(request, {'form': data})
|
||||||
return template.render(context)
|
return template.render(context)
|
||||||
|
|
||||||
|
|
|
@ -340,6 +340,7 @@ class BaseSerializer(WritableField):
|
||||||
"""
|
"""
|
||||||
ret = self._dict_class()
|
ret = self._dict_class()
|
||||||
ret.fields = self._dict_class()
|
ret.fields = self._dict_class()
|
||||||
|
ret.empty = obj is None
|
||||||
|
|
||||||
for field_name, field in self.fields.items():
|
for field_name, field in self.fields.items():
|
||||||
if field.read_only and obj is None:
|
if field.read_only and obj is None:
|
||||||
|
|
39
rest_framework/tests/test_issue_1237.py
Normal file
39
rest_framework/tests/test_issue_1237.py
Normal 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)
|
Loading…
Reference in New Issue
Block a user