mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	This should allow smarter output_field inferring in functions dealing with text expressions. Regression inf333e3513e. Backport of8b1acc0440from main
This commit is contained in:
		
				
					committed by
					
						 Mariusz Felisiak
						Mariusz Felisiak
					
				
			
			
				
	
			
			
			
						parent
						
							0265eaa500
						
					
				
				
					commit
					73869a5163
				
			| @@ -1081,7 +1081,7 @@ class Value(SQLiteNumericMixin, Expression): | ||||
|  | ||||
|     def _resolve_output_field(self): | ||||
|         if isinstance(self.value, str): | ||||
|             return fields.CharField() | ||||
|             return fields.CharField(max_length=len(self.value)) | ||||
|         if isinstance(self.value, bool): | ||||
|             return fields.BooleanField() | ||||
|         if isinstance(self.value, int): | ||||
|   | ||||
| @@ -2227,6 +2227,7 @@ class ValueTests(TestCase): | ||||
|             with self.subTest(type=type(value)): | ||||
|                 expr = Value(value) | ||||
|                 self.assertIsInstance(expr.output_field, output_field_type) | ||||
|         self.assertEqual(Value("foo").output_field.max_length, 3) | ||||
|  | ||||
|     def test_resolve_output_field_failure(self): | ||||
|         msg = "Cannot resolve expression type, unknown output_field" | ||||
|   | ||||
| @@ -848,6 +848,23 @@ class SchemaTests(TransactionTestCase): | ||||
|             False, | ||||
|         ) | ||||
|  | ||||
|     @isolate_apps("schema") | ||||
|     @skipUnlessDBFeature("supports_stored_generated_columns") | ||||
|     def test_add_generated_field_with_string_value(self): | ||||
|         class GeneratedFieldStringValueModel(Model): | ||||
|             value = GeneratedField(expression=Value("static string"), db_persist=True) | ||||
|  | ||||
|             class Meta: | ||||
|                 app_label = "schema" | ||||
|  | ||||
|         with CaptureQueriesContext(connection) as ctx: | ||||
|             with connection.schema_editor() as editor: | ||||
|                 editor.create_model(GeneratedFieldStringValueModel) | ||||
|         self.assertIs( | ||||
|             any("None" in query["sql"] for query in ctx.captured_queries), | ||||
|             False, | ||||
|         ) | ||||
|  | ||||
|     @isolate_apps("schema") | ||||
|     @skipUnlessDBFeature("supports_stored_generated_columns") | ||||
|     def test_add_generated_field_with_output_field(self): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user