Skip to content

Commit

Permalink
Add form field descriptions to schemas (#4387)
Browse files Browse the repository at this point in the history
  • Loading branch information
tomchristie authored Aug 11, 2016
1 parent 01b498e commit 116917d
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
9 changes: 8 additions & 1 deletion rest_framework/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from django.contrib.admindocs.views import simplify_regex
from django.core.urlresolvers import RegexURLPattern, RegexURLResolver
from django.utils import six
from django.utils.encoding import force_text

from rest_framework import exceptions, serializers
from rest_framework.compat import coreapi, uritemplate, urlparse
Expand Down Expand Up @@ -295,7 +296,13 @@ def get_serializer_fields(self, path, method, callback, view):
if field.read_only:
continue
required = field.required and method != 'PATCH'
field = coreapi.Field(name=field.source, location='form', required=required)
description = force_text(field.help_text) if field.help_text else ''
field = coreapi.Field(
name=field.source,
location='form',
required=required,
description=description
)
fields.append(field)

return fields
Expand Down
8 changes: 4 additions & 4 deletions tests/test_schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class ExamplePagination(pagination.PageNumberPagination):


class ExampleSerializer(serializers.Serializer):
a = serializers.CharField(required=True)
a = serializers.CharField(required=True, help_text='A field description')
b = serializers.CharField(required=False)


Expand Down Expand Up @@ -131,7 +131,7 @@ def test_authenticated_request(self):
action='post',
encoding='application/json',
fields=[
coreapi.Field('a', required=True, location='form'),
coreapi.Field('a', required=True, location='form', description='A field description'),
coreapi.Field('b', required=False, location='form')
]
),
Expand Down Expand Up @@ -162,7 +162,7 @@ def test_authenticated_request(self):
encoding='application/json',
fields=[
coreapi.Field('pk', required=True, location='path'),
coreapi.Field('a', required=True, location='form'),
coreapi.Field('a', required=True, location='form', description='A field description'),
coreapi.Field('b', required=False, location='form')
]
),
Expand All @@ -172,7 +172,7 @@ def test_authenticated_request(self):
encoding='application/json',
fields=[
coreapi.Field('pk', required=True, location='path'),
coreapi.Field('a', required=False, location='form'),
coreapi.Field('a', required=False, location='form', description='A field description'),
coreapi.Field('b', required=False, location='form')
]
),
Expand Down

0 comments on commit 116917d

Please sign in to comment.