diff options
| author | Tom Christie | 2013-07-05 08:55:24 +0100 | 
|---|---|---|
| committer | Tom Christie | 2013-07-05 08:55:24 +0100 | 
| commit | 676ab4971ceef4186747df8a0a45e4ff0c7eb80c (patch) | |
| tree | e56c7a0c8d8356203860332b852a47b62c264f0d | |
| parent | 99794773cf6b865b5b860b35db31dea92968c605 (diff) | |
| parent | 7d43f41e4aa50c4258ec1d7b63dd62a01440fa9d (diff) | |
| download | django-rest-framework-676ab4971ceef4186747df8a0a45e4ff0c7eb80c.tar.bz2 | |
Merge branch 'remove-hold-down-control-messages' of git://github.com/rouge8/django-rest-framework into rouge8-remove-hold-down-control-messages
| -rw-r--r-- | rest_framework/fields.py | 15 | ||||
| -rw-r--r-- | rest_framework/tests/models.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/test_serializer.py | 12 | 
3 files changed, 27 insertions, 2 deletions
| diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 35848b4c..1a0ad3b9 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -100,6 +100,19 @@ def humanize_strptime(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):      read_only = True      creation_counter = 0 @@ -122,7 +135,7 @@ class Field(object):              self.label = smart_text(label)          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):          """ diff --git a/rest_framework/tests/models.py b/rest_framework/tests/models.py index e2d4eacd..1598ecd9 100644 --- a/rest_framework/tests/models.py +++ b/rest_framework/tests/models.py @@ -52,7 +52,7 @@ class CallableDefaultValueModel(RESTFrameworkModel):  class ManyToManyModel(RESTFrameworkModel): -    rel = models.ManyToManyField(Anchor) +    rel = models.ManyToManyField(Anchor, help_text='Some help text.')  class ReadOnlyManyToManyModel(RESTFrameworkModel): diff --git a/rest_framework/tests/test_serializer.py b/rest_framework/tests/test_serializer.py index 8b87a084..6c18f15c 100644 --- a/rest_framework/tests/test_serializer.py +++ b/rest_framework/tests/test_serializer.py @@ -1376,6 +1376,18 @@ class FieldLabelTest(TestCase):          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):      def setUp(self): | 
