Fixed #24677 -- Made TextField.to_python() return a string.
This is consistent with CharField.
This commit is contained in:
parent
dfdcb3ca22
commit
19e67c6cd1
|
@ -2141,12 +2141,15 @@ class TextField(Field):
|
|||
def get_internal_type(self):
|
||||
return "TextField"
|
||||
|
||||
def get_prep_value(self, value):
|
||||
value = super(TextField, self).get_prep_value(value)
|
||||
def to_python(self, value):
|
||||
if isinstance(value, six.string_types) or value is None:
|
||||
return value
|
||||
return smart_text(value)
|
||||
|
||||
def get_prep_value(self, value):
|
||||
value = super(TextField, self).get_prep_value(value)
|
||||
return self.to_python(value)
|
||||
|
||||
def formfield(self, **kwargs):
|
||||
# Passing max_length to forms.CharField means that the value's length
|
||||
# will be validated twice. This is considered acceptable since we want
|
||||
|
|
|
@ -246,6 +246,13 @@ class ManyToManyFieldTests(test.SimpleTestCase):
|
|||
)
|
||||
|
||||
|
||||
class TextFieldTests(test.TestCase):
|
||||
def test_to_python(self):
|
||||
"""TextField.to_python() should return a string"""
|
||||
f = models.TextField()
|
||||
self.assertEqual(f.to_python(1), '1')
|
||||
|
||||
|
||||
class DateTimeFieldTests(test.TestCase):
|
||||
def test_datetimefield_to_python_usecs(self):
|
||||
"""DateTimeField.to_python should support usecs"""
|
||||
|
|
Loading…
Reference in New Issue