summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Kocherhans <joseph@jkocherhans.com>2010-01-14 17:04:53 +0000
committerJoseph Kocherhans <joseph@jkocherhans.com>2010-01-14 17:04:53 +0000
commita2a5602b1937e94b579957c9c2823da48eb69ed9 (patch)
treef5f1237680cd9442d3d13304e529200eb5c60279
parent2b2db12032e47229a9d9af28b05a07648f3fef93 (diff)
Fixed #12560. Changed validate_unique to stop checking null primary key values. Thanks, Honza Král.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12227 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--AUTHORS2
-rw-r--r--django/db/models/base.py2
-rw-r--r--tests/modeltests/validation/test_unique.py22
3 files changed, 17 insertions, 9 deletions
diff --git a/AUTHORS b/AUTHORS
index 55211a6790..efc43fa3e8 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -256,7 +256,7 @@ answer newbie questions, and generally made Django that much better:
Gasper Koren
Martin Kosír <martin@martinkosir.net>
Arthur Koziel <http://arthurkoziel.com>
- Honza Kral <honza.kral@gmail.com>
+ Honza Král <honza.kral@gmail.com>
Meir Kriheli <http://mksoft.co.il/>
Bruce Kroeze <http://coderseye.com/>
krzysiek.pawlik@silvermedia.pl
diff --git a/django/db/models/base.py b/django/db/models/base.py
index 6f90091871..822116054c 100644
--- a/django/db/models/base.py
+++ b/django/db/models/base.py
@@ -715,7 +715,7 @@ class Model(object):
for field_name in unique_check:
f = self._meta.get_field(field_name)
lookup_value = getattr(self, f.attname)
- if f.null and lookup_value is None:
+ if lookup_value is None:
# no value, skip the lookup
continue
if f.primary_key and not getattr(self, '_adding', False):
diff --git a/tests/modeltests/validation/test_unique.py b/tests/modeltests/validation/test_unique.py
index 0130208bba..2d67a0a296 100644
--- a/tests/modeltests/validation/test_unique.py
+++ b/tests/modeltests/validation/test_unique.py
@@ -43,18 +43,26 @@ class PerformUniqueChecksTest(unittest.TestCase):
settings.DEBUG = self._old_debug
super(PerformUniqueChecksTest, self).tearDown()
- def test_primary_key_unique_check_performed_when_adding(self):
- """Regression test for #12132"""
- l = len(connection.queries)
+ def test_primary_key_unique_check_not_performed_when_adding_and_pk_not_specified(self):
+ # Regression test for #12560
+ query_count = len(connection.queries)
mtv = ModelToValidate(number=10, name='Some Name')
setattr(mtv, '_adding', True)
mtv.full_clean()
- self.assertEqual(l+1, len(connection.queries))
+ self.assertEqual(query_count, len(connection.queries))
+
+ def test_primary_key_unique_check_performed_when_adding_and_pk_specified(self):
+ # Regression test for #12560
+ query_count = len(connection.queries)
+ mtv = ModelToValidate(number=10, name='Some Name', id=123)
+ setattr(mtv, '_adding', True)
+ mtv.full_clean()
+ self.assertEqual(query_count + 1, len(connection.queries))
def test_primary_key_unique_check_not_performed_when_not_adding(self):
- """Regression test for #12132"""
- l = len(connection.queries)
+ # Regression test for #12132
+ query_count= len(connection.queries)
mtv = ModelToValidate(number=10, name='Some Name')
mtv.full_clean()
- self.assertEqual(l, len(connection.queries))
+ self.assertEqual(query_count, len(connection.queries))