mirror of https://github.com/django/django.git
Fixed #14019 -- Initialize `SQLInsertCompiler.return_id` attribute.
This commit is contained in:
parent
4a7292df3b
commit
161c4da588
|
@ -804,6 +804,11 @@ class SQLCompiler(object):
|
||||||
|
|
||||||
|
|
||||||
class SQLInsertCompiler(SQLCompiler):
|
class SQLInsertCompiler(SQLCompiler):
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
self.return_id = False
|
||||||
|
super(SQLInsertCompiler, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
def placeholder(self, field, val):
|
def placeholder(self, field, val):
|
||||||
if field is None:
|
if field is None:
|
||||||
# A field value of None means the value is raw.
|
# 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.test import TestCase, skipUnlessDBFeature
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
from django.utils import tzinfo
|
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,
|
from .models import (Worker, Article, Party, Event, Department,
|
||||||
BrokenUnicodeMethod, NonAutoPK, Model1, Model2, Model3)
|
BrokenUnicodeMethod, NonAutoPK, Model1, Model2, Model3)
|
||||||
|
@ -27,6 +29,16 @@ class ModelTests(TestCase):
|
||||||
"""
|
"""
|
||||||
Worker.objects.filter(department__lte=0)
|
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):
|
def test_empty_choice(self):
|
||||||
# NOTE: Part of the regression test here is merely parsing the model
|
# NOTE: Part of the regression test here is merely parsing the model
|
||||||
# declaration. The verbose_name, in particular, did not always work.
|
# declaration. The verbose_name, in particular, did not always work.
|
||||||
|
|
Loading…
Reference in New Issue