mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #24677 -- Made TextField.to_python() return a string.
This is consistent with CharField.
This commit is contained in:
		| @@ -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""" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user