diff options
Diffstat (limited to 'tests/update')
| -rw-r--r-- | tests/update/models.py | 3 | ||||
| -rw-r--r-- | tests/update/tests.py | 24 |
2 files changed, 27 insertions, 0 deletions
diff --git a/tests/update/models.py b/tests/update/models.py index d71fc887c7..3d93915c9f 100644 --- a/tests/update/models.py +++ b/tests/update/models.py @@ -41,6 +41,9 @@ class Foo(models.Model): class Bar(models.Model): foo = models.ForeignKey(Foo, models.CASCADE, to_field="target") + o2o_foo = models.OneToOneField( + Foo, models.CASCADE, related_name="o2o_bar", null=True + ) m2m_foo = models.ManyToManyField(Foo, related_name="m2m_foo") x = models.IntegerField(default=0) diff --git a/tests/update/tests.py b/tests/update/tests.py index fdd0631142..af5939a2ef 100644 --- a/tests/update/tests.py +++ b/tests/update/tests.py @@ -173,6 +173,30 @@ class AdvancedTests(TestCase): with self.assertRaisesMessage(FieldError, msg): Foo.objects.update(m2m_foo="whatever") + def test_update_reverse_fk_descriptor(self): + msg = ( + "Cannot update model field <ManyToOneRel: update.bar> " + "(only non-relations and foreign keys permitted)." + ) + with self.assertRaisesMessage(FieldError, msg): + Foo.objects.update(bar="whatever") + + def test_update_reverse_o2o_descriptor(self): + msg = ( + "Cannot update model field <OneToOneRel: update.bar> " + "(only non-relations and foreign keys permitted)." + ) + with self.assertRaisesMessage(FieldError, msg): + Foo.objects.update(o2o_bar="whatever") + + def test_update_reverse_mti_parent_link_descriptor(self): + msg = ( + "Cannot update model field <OneToOneRel: update.uniquenumberchild> " + "(only non-relations and foreign keys permitted)." + ) + with self.assertRaisesMessage(FieldError, msg): + UniqueNumber.objects.update(uniquenumberchild="whatever") + def test_update_transformed_field(self): A.objects.create(x=5) A.objects.create(x=-6) |
