summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2009-03-06 04:53:33 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2009-03-06 04:53:33 +0000
commit84b890b66e80bcc1834c22b8b347641b2e51f455 (patch)
tree24d6c1d63e5e5c8a407db1ffe898330c300b9b44 /tests
parentdd5300274f81e8ea41f3ef41487179e2b1770d65 (diff)
[1.0.X] Fixed #9649 -- Better error handling in model creation.
Previously, you could explicitly assign None to a non-null ForeignKey (or other) field when creating the model (Child(parent=None), etc). We now throw an exception when you do that, which matches the behaviour when you assign None to the attribute after creation. Thanks to ales.zoulek@gmail.com and ondrej.kohout@gmail.com for some analysis of this problem. Backport of r9983 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@9984 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/many_to_one_regress/models.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/tests/regressiontests/many_to_one_regress/models.py b/tests/regressiontests/many_to_one_regress/models.py
index 2039bd5ddf..3f35bef62c 100644
--- a/tests/regressiontests/many_to_one_regress/models.py
+++ b/tests/regressiontests/many_to_one_regress/models.py
@@ -1,5 +1,5 @@
"""
-Regression tests for a few FK bugs: #1578, #6886
+Regression tests for a few ForeignKey bugs.
"""
from django.db import models
@@ -106,6 +106,17 @@ Traceback (most recent call last):
...
ValueError: Cannot assign "<First: First object>": "Child.parent" must be a "Parent" instance.
+# Nor can you explicitly assign None to Child.parent during object creation
+# (regression for #9649).
+>>> Child(name='xyzzy', parent=None)
+Traceback (most recent call last):
+ ...
+ValueError: Cannot assign None: "Child.parent" does not allow null values.
+>>> Child.objects.create(name='xyzzy', parent=None)
+Traceback (most recent call last):
+ ...
+ValueError: Cannot assign None: "Child.parent" does not allow null values.
+
# Creation using keyword argument should cache the related object.
>>> p = Parent.objects.get(name="Parent")
>>> c = Child(parent=p)