mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	[1.10.x] Fixed #26949 -- Fixed crash of disabled forms.JSONField.
Backport of 68de48c963 from master
			
			
This commit is contained in:
		
				
					committed by
					
						 Tim Graham
						Tim Graham
					
				
			
			
				
	
			
			
			
						parent
						
							3744fc1666
						
					
				
				
					commit
					714e287d9a
				
			| @@ -21,6 +21,8 @@ class JSONField(forms.CharField): | |||||||
|         super(JSONField, self).__init__(**kwargs) |         super(JSONField, self).__init__(**kwargs) | ||||||
|  |  | ||||||
|     def to_python(self, value): |     def to_python(self, value): | ||||||
|  |         if self.disabled: | ||||||
|  |             return value | ||||||
|         if value in self.empty_values: |         if value in self.empty_values: | ||||||
|             return None |             return None | ||||||
|         try: |         try: | ||||||
|   | |||||||
| @@ -260,6 +260,14 @@ class TestFormField(PostgreSQLTestCase): | |||||||
|         form_field = model_field.formfield() |         form_field = model_field.formfield() | ||||||
|         self.assertIsInstance(form_field, forms.JSONField) |         self.assertIsInstance(form_field, forms.JSONField) | ||||||
|  |  | ||||||
|  |     def test_formfield_disabled(self): | ||||||
|  |         class JsonForm(Form): | ||||||
|  |             name = CharField() | ||||||
|  |             jfield = forms.JSONField(disabled=True) | ||||||
|  |  | ||||||
|  |         form = JsonForm({'name': 'xyz', 'jfield': '["bar"]'}, initial={'jfield': ['foo']}) | ||||||
|  |         self.assertIn('["foo"]</textarea>', form.as_p()) | ||||||
|  |  | ||||||
|     def test_prepare_value(self): |     def test_prepare_value(self): | ||||||
|         field = forms.JSONField() |         field = forms.JSONField() | ||||||
|         self.assertEqual(field.prepare_value({'a': 'b'}), '{"a": "b"}') |         self.assertEqual(field.prepare_value({'a': 'b'}), '{"a": "b"}') | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user