diff options
| author | Ryan P Kilby <kilbyr@gmail.com> | 2025-06-27 13:03:16 -0700 |
|---|---|---|
| committer | Jacob Walls <jacobtylerwalls@gmail.com> | 2025-09-22 21:52:21 -0400 |
| commit | 9575f813afe8f6d40b016cf302d6871f5d38517e (patch) | |
| tree | 16f8b946ba7494d5fff36cff7caf35594611d417 /tests | |
| parent | ffac97bf63ea803a6196d2097b4186e0865d9091 (diff) | |
[6.0.x] Fixed #35453 -- Made ManyToManyField.concrete False.
ManyToManyField was already excluded from fields, concrete_fields,
and local_concrete_fields in Options.
Backport of f9a44cc0fac653f8e0c2ab1cdfb12b2cc5c63fc2 from main
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/composite_pk/test_update.py | 2 | ||||
| -rw-r--r-- | tests/model_fields/test_field_flags.py | 3 | ||||
| -rw-r--r-- | tests/update/tests.py | 31 |
3 files changed, 13 insertions, 23 deletions
diff --git a/tests/composite_pk/test_update.py b/tests/composite_pk/test_update.py index 8d786e8afb..4f3068f228 100644 --- a/tests/composite_pk/test_update.py +++ b/tests/composite_pk/test_update.py @@ -172,7 +172,7 @@ class CompositePKUpdateTests(TestCase): def test_cant_update_relation(self): msg = ( "Cannot update model field <django.db.models.fields.related.ForeignObject: " - "user> (only non-relations and foreign keys permitted)" + "user> (only concrete fields are permitted)" ) with self.assertRaisesMessage(FieldError, msg): diff --git a/tests/model_fields/test_field_flags.py b/tests/model_fields/test_field_flags.py index 33f3334567..778a43eb63 100644 --- a/tests/model_fields/test_field_flags.py +++ b/tests/model_fields/test_field_flags.py @@ -6,6 +6,7 @@ from .models import AllFieldsModel NON_CONCRETE_FIELDS = ( models.ForeignObject, + models.ManyToManyField, GenericForeignKey, GenericRelation, ) @@ -209,7 +210,7 @@ class FieldFlagsTests(test.SimpleTestCase): def test_model_and_reverse_model_should_equal_on_relations(self): for field in AllFieldsModel._meta.get_fields(): is_concrete_forward_field = field.concrete and field.related_model - if is_concrete_forward_field: + if is_concrete_forward_field or field.many_to_many: reverse_field = field.remote_field self.assertEqual(field.model, reverse_field.related_model) self.assertEqual(field.related_model, reverse_field.model) diff --git a/tests/update/tests.py b/tests/update/tests.py index af5939a2ef..eb5d80219c 100644 --- a/tests/update/tests.py +++ b/tests/update/tests.py @@ -157,43 +157,32 @@ class AdvancedTests(TestCase): self.assertEqual(bar_qs[0].foo_id, b_foo.target) def test_update_m2m_field(self): - msg = ( - "Cannot update model field " - "<django.db.models.fields.related.ManyToManyField: m2m_foo> " - "(only non-relations and foreign keys permitted)." - ) + rel = "<django.db.models.fields.related.ManyToManyField: m2m_foo>" + msg = f"Cannot update model field {rel} (only concrete fields are permitted)." with self.assertRaisesMessage(FieldError, msg): Bar.objects.update(m2m_foo="whatever") def test_update_reverse_m2m_descriptor(self): - msg = ( - "Cannot update model field <ManyToManyRel: update.bar> " - "(only non-relations and foreign keys permitted)." - ) + rel = "<ManyToManyRel: update.bar>" + msg = f"Cannot update model field {rel} (only concrete fields are permitted)." 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)." - ) + rel = "<ManyToOneRel: update.bar>" + msg = f"Cannot update model field {rel} (only concrete fields are 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)." - ) + rel = "<OneToOneRel: update.bar>" + msg = f"Cannot update model field {rel} (only concrete fields are 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)." - ) + rel = "<OneToOneRel: update.uniquenumberchild>" + msg = f"Cannot update model field {rel} (only concrete fields are permitted)." with self.assertRaisesMessage(FieldError, msg): UniqueNumber.objects.update(uniquenumberchild="whatever") |
