mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #14019 -- Initialize SQLInsertCompiler.return_id attribute.
				
					
				
			This commit is contained in:
		
				
					committed by
					
						 Carl Meyer
						Carl Meyer
					
				
			
			
				
	
			
			
			
						parent
						
							4a7292df3b
						
					
				
				
					commit
					161c4da588
				
			| @@ -804,6 +804,11 @@ class SQLCompiler(object): | ||||
|  | ||||
|  | ||||
| class SQLInsertCompiler(SQLCompiler): | ||||
|  | ||||
|     def __init__(self, *args, **kwargs): | ||||
|         self.return_id = False | ||||
|         super(SQLInsertCompiler, self).__init__(*args, **kwargs) | ||||
|  | ||||
|     def placeholder(self, field, val): | ||||
|         if field is None: | ||||
|             # A field value of None means the value is raw. | ||||
|   | ||||
| @@ -7,6 +7,8 @@ from django.core.exceptions import ValidationError | ||||
| from django.test import TestCase, skipUnlessDBFeature | ||||
| from django.utils import six | ||||
| from django.utils import tzinfo | ||||
| from django.db import router | ||||
| from django.db.models.sql import InsertQuery | ||||
|  | ||||
| from .models import (Worker, Article, Party, Event, Department, | ||||
|     BrokenUnicodeMethod, NonAutoPK, Model1, Model2, Model3) | ||||
| @@ -27,6 +29,16 @@ class ModelTests(TestCase): | ||||
|         """ | ||||
|         Worker.objects.filter(department__lte=0) | ||||
|  | ||||
|     def test_sql_insert_compiler_return_id_attribute(self): | ||||
|         """ | ||||
|         Regression test for #14019: SQLInsertCompiler.as_sql() failure | ||||
|         """ | ||||
|         db = router.db_for_write(Party) | ||||
|         query = InsertQuery(Party) | ||||
|         query.insert_values([Party._meta.fields[0]], [], raw=False) | ||||
|         # this line will raise an AttributeError without the accompanying fix | ||||
|         query.get_compiler(using=db).as_sql() | ||||
|  | ||||
|     def test_empty_choice(self): | ||||
|         # NOTE: Part of the regression test here is merely parsing the model | ||||
|         # declaration. The verbose_name, in particular, did not always work. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user