Commit 19e67c6c authored by Rolo's avatar Rolo Committed by Tim Graham
Browse files

Fixed #24677 -- Made TextField.to_python() return a string.

This is consistent with CharField.
parent dfdcb3ca
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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
+7 −0
Original line number Diff line number Diff line
@@ -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"""