diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2009-03-06 04:53:33 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2009-03-06 04:53:33 +0000 |
| commit | 84b890b66e80bcc1834c22b8b347641b2e51f455 (patch) | |
| tree | 24d6c1d63e5e5c8a407db1ffe898330c300b9b44 /tests | |
| parent | dd5300274f81e8ea41f3ef41487179e2b1770d65 (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.py | 13 |
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) |
