Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed #14019 -- Initialize `SQLInsertCompiler.return_id` attribute.

  • Loading branch information...
commit 161c4da588d4cc757da44bcbb5875a84a7b8a7e6 1 parent 4a7292d
Tobias McNulty tobiasmcnulty authored carljm committed
Showing with 17 additions and 0 deletions.
  1. +5 −0 django/db/models/sql/compiler.py
  2. +12 −0 tests/model_regress/tests.py
5 django/db/models/sql/compiler.py
View
@@ -804,6 +804,11 @@ def as_subquery_condition(self, alias, columns):
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.
12 tests/model_regress/tests.py
View
@@ -7,6 +7,8 @@
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 @@ def test_related_lte_lookup(self):
"""
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.
Please sign in to comment.
Something went wrong with that request. Please try again.