summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRyan P Kilby <kilbyr@gmail.com>2025-06-27 13:03:16 -0700
committerJacob Walls <jacobtylerwalls@gmail.com>2025-09-22 21:52:21 -0400
commit9575f813afe8f6d40b016cf302d6871f5d38517e (patch)
tree16f8b946ba7494d5fff36cff7caf35594611d417 /tests
parentffac97bf63ea803a6196d2097b4186e0865d9091 (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.py2
-rw-r--r--tests/model_fields/test_field_flags.py3
-rw-r--r--tests/update/tests.py31
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")