summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Chainz <me@adamj.eu>2016-11-20 18:21:59 +0000
committerSimon Charette <charettes@users.noreply.github.com>2016-11-20 13:21:59 -0500
commitcc1f6f26b68223bb5b332c774422173d7800bf80 (patch)
tree5a39249b0a7bbda84f989a0b53bdbe960b9f6d87
parenta269018e8695bb8cc65841c408c6024801130085 (diff)
Fixed #27514 -- Tested Model.__init__ excessive number of fields.
-rw-r--r--django/db/models/base.py3
-rw-r--r--tests/model_regress/tests.py5
2 files changed, 6 insertions, 2 deletions
diff --git a/django/db/models/base.py b/django/db/models/base.py
index 42b0a75728..219a1b1aa2 100644
--- a/django/db/models/base.py
+++ b/django/db/models/base.py
@@ -472,8 +472,7 @@ class Model(six.with_metaclass(ModelBase)):
# overrides it. It should be one or the other; don't duplicate the work
# The reason for the kwargs check is that standard iterator passes in by
# args, and instantiation for iteration is 33% faster.
- args_len = len(args)
- if args_len > len(self._meta.concrete_fields):
+ if len(args) > len(self._meta.concrete_fields):
# Daft, but matches old exception sans the err msg.
raise IndexError("Number of args exceeds number of fields")
diff --git a/tests/model_regress/tests.py b/tests/model_regress/tests.py
index 3990143e2d..bd8e927be6 100644
--- a/tests/model_regress/tests.py
+++ b/tests/model_regress/tests.py
@@ -17,6 +17,11 @@ from .models import (
class ModelTests(TestCase):
+ def test_model_init_too_many_args(self):
+ msg = "Number of args exceeds number of fields"
+ with self.assertRaisesMessage(IndexError, msg):
+ Worker(1, 2, 3, 4)
+
# The bug is that the following queries would raise:
# "TypeError: Related Field has invalid lookup: gte"
def test_related_gte_lookup(self):