Skip to content

Commit 116917d

Browse files
authored
Add form field descriptions to schemas (#4387)
1 parent 01b498e commit 116917d

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

rest_framework/schemas.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from django.contrib.admindocs.views import simplify_regex
55
from django.core.urlresolvers import RegexURLPattern, RegexURLResolver
66
from django.utils import six
7+
from django.utils.encoding import force_text
78

89
from rest_framework import exceptions, serializers
910
from rest_framework.compat import coreapi, uritemplate, urlparse
@@ -295,7 +296,13 @@ def get_serializer_fields(self, path, method, callback, view):
295296
if field.read_only:
296297
continue
297298
required = field.required and method != 'PATCH'
298-
field = coreapi.Field(name=field.source, location='form', required=required)
299+
description = force_text(field.help_text) if field.help_text else ''
300+
field = coreapi.Field(
301+
name=field.source,
302+
location='form',
303+
required=required,
304+
description=description
305+
)
299306
fields.append(field)
300307

301308
return fields

tests/test_schemas.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class ExamplePagination(pagination.PageNumberPagination):
2424

2525

2626
class ExampleSerializer(serializers.Serializer):
27-
a = serializers.CharField(required=True)
27+
a = serializers.CharField(required=True, help_text='A field description')
2828
b = serializers.CharField(required=False)
2929

3030

@@ -131,7 +131,7 @@ def test_authenticated_request(self):
131131
action='post',
132132
encoding='application/json',
133133
fields=[
134-
coreapi.Field('a', required=True, location='form'),
134+
coreapi.Field('a', required=True, location='form', description='A field description'),
135135
coreapi.Field('b', required=False, location='form')
136136
]
137137
),
@@ -162,7 +162,7 @@ def test_authenticated_request(self):
162162
encoding='application/json',
163163
fields=[
164164
coreapi.Field('pk', required=True, location='path'),
165-
coreapi.Field('a', required=True, location='form'),
165+
coreapi.Field('a', required=True, location='form', description='A field description'),
166166
coreapi.Field('b', required=False, location='form')
167167
]
168168
),
@@ -172,7 +172,7 @@ def test_authenticated_request(self):
172172
encoding='application/json',
173173
fields=[
174174
coreapi.Field('pk', required=True, location='path'),
175-
coreapi.Field('a', required=False, location='form'),
175+
coreapi.Field('a', required=False, location='form', description='A field description'),
176176
coreapi.Field('b', required=False, location='form')
177177
]
178178
),

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy