aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Christie2013-07-05 08:55:24 +0100
committerTom Christie2013-07-05 08:55:24 +0100
commit676ab4971ceef4186747df8a0a45e4ff0c7eb80c (patch)
treee56c7a0c8d8356203860332b852a47b62c264f0d
parent99794773cf6b865b5b860b35db31dea92968c605 (diff)
parent7d43f41e4aa50c4258ec1d7b63dd62a01440fa9d (diff)
downloaddjango-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.py15
-rw-r--r--rest_framework/tests/models.py2
-rw-r--r--rest_framework/tests/test_serializer.py12
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):