diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-10-08 10:11:02 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-10-08 10:11:02 +0000 |
| commit | ced447ee9784d2a3bbd1115ff40ae837be766009 (patch) | |
| tree | 437649f210100134b5b8e1a6f197339501d41104 /tests/regressiontests | |
| parent | a9936d0b1cc9a0f7468fed87192f60fc5a85c26a (diff) | |
[1.0.X] Fixed #9319 -- Fixed a crash when using the same model field in multiple
unique_together constraints.
Backport of r9208 from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@9209 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests')
| -rw-r--r-- | tests/regressiontests/model_forms_regress/__init__.py | 0 | ||||
| -rw-r--r-- | tests/regressiontests/model_forms_regress/models.py | 32 |
2 files changed, 32 insertions, 0 deletions
diff --git a/tests/regressiontests/model_forms_regress/__init__.py b/tests/regressiontests/model_forms_regress/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/regressiontests/model_forms_regress/__init__.py diff --git a/tests/regressiontests/model_forms_regress/models.py b/tests/regressiontests/model_forms_regress/models.py new file mode 100644 index 0000000000..dedbed7179 --- /dev/null +++ b/tests/regressiontests/model_forms_regress/models.py @@ -0,0 +1,32 @@ +from django.db import models +from django import forms + +class Triple(models.Model): + left = models.IntegerField() + middle = models.IntegerField() + right = models.IntegerField() + + def __unicode__(self): + return u"%d, %d, %d" % (self.left, self.middle, self.right) + + class Meta: + unique_together = (('left', 'middle'), ('middle', 'right')) + +__test__ = {'API_TESTS': """ +When the same field is involved in multiple unique_together constraints, we +need to make sure we don't remove the data for it before doing all the +validation checking (not just failing after the first one). + +>>> _ = Triple.objects.create(left=1, middle=2, right=3) +>>> class TripleForm(forms.ModelForm): +... class Meta: +... model = Triple + +>>> form = TripleForm({'left': '1', 'middle': '2', 'right': '3'}) +>>> form.is_valid() +False +>>> form = TripleForm({'left': '1', 'middle': '3', 'right': '1'}) +>>> form.is_valid() +True +"""} + |
