mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-23 01:57:00 +03:00
Remove 'Hold down "Control" ...' message from help_text
When getting the help_text from a field where `many=True`, Django appends 'Hold down "Control", or "Command" on a Mac, to select more than one.' to the help_text. This makes some sense in Django's ModelForms, but no sense in the API.
This commit is contained in:
parent
7c0019854b
commit
7d43f41e4a
|
@ -100,6 +100,19 @@ def humanize_strptime(format_string):
|
||||||
return format_string
|
return format_string
|
||||||
|
|
||||||
|
|
||||||
|
def strip_multiple_choice_msg(help_text):
|
||||||
|
"""
|
||||||
|
Remove the 'Hold down "control" ...' message that is enforced in select
|
||||||
|
multiple fields.
|
||||||
|
|
||||||
|
See https://code.djangoproject.com/ticket/9321
|
||||||
|
"""
|
||||||
|
multiple_choice_msg = _(' Hold down "Control", or "Command" on a Mac, to select more than one.')
|
||||||
|
multiple_choice_msg = unicode(multiple_choice_msg)
|
||||||
|
|
||||||
|
return help_text.replace(multiple_choice_msg, '')
|
||||||
|
|
||||||
|
|
||||||
class Field(object):
|
class Field(object):
|
||||||
read_only = True
|
read_only = True
|
||||||
creation_counter = 0
|
creation_counter = 0
|
||||||
|
@ -122,7 +135,7 @@ class Field(object):
|
||||||
self.label = smart_text(label)
|
self.label = smart_text(label)
|
||||||
|
|
||||||
if help_text is not None:
|
if help_text is not None:
|
||||||
self.help_text = smart_text(help_text)
|
self.help_text = strip_multiple_choice_msg(smart_text(help_text))
|
||||||
|
|
||||||
def initialize(self, parent, field_name):
|
def initialize(self, parent, field_name):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -52,7 +52,7 @@ class CallableDefaultValueModel(RESTFrameworkModel):
|
||||||
|
|
||||||
|
|
||||||
class ManyToManyModel(RESTFrameworkModel):
|
class ManyToManyModel(RESTFrameworkModel):
|
||||||
rel = models.ManyToManyField(Anchor)
|
rel = models.ManyToManyField(Anchor, help_text='Some help text.')
|
||||||
|
|
||||||
|
|
||||||
class ReadOnlyManyToManyModel(RESTFrameworkModel):
|
class ReadOnlyManyToManyModel(RESTFrameworkModel):
|
||||||
|
|
|
@ -1376,6 +1376,18 @@ class FieldLabelTest(TestCase):
|
||||||
self.assertEqual('Label', relations.HyperlinkedRelatedField(view_name='fake', label='Label', help_text='Help', many=True).label)
|
self.assertEqual('Label', relations.HyperlinkedRelatedField(view_name='fake', label='Label', help_text='Help', many=True).label)
|
||||||
|
|
||||||
|
|
||||||
|
# Test for issue #961
|
||||||
|
|
||||||
|
class ManyFieldHelpTextTest(TestCase):
|
||||||
|
def test_help_text_no_hold_down_control_msg(self):
|
||||||
|
"""
|
||||||
|
Validate that help_text doesn't contain the 'Hold down "Control" ...'
|
||||||
|
message that Django appends to choice fields.
|
||||||
|
"""
|
||||||
|
rel_field = fields.Field(help_text=ManyToManyModel._meta.get_field('rel').help_text)
|
||||||
|
self.assertEqual('Some help text.', unicode(rel_field.help_text))
|
||||||
|
|
||||||
|
|
||||||
class AttributeMappingOnAutogeneratedFieldsTests(TestCase):
|
class AttributeMappingOnAutogeneratedFieldsTests(TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user