summaryrefslogtreecommitdiff
path: root/django/db/backends
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 /django/db/backends
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 'django/db/backends')
-rw-r--r--django/db/backends/base/schema.py10
-rw-r--r--django/db/backends/sqlite3/schema.py2
2 files changed, 8 insertions, 4 deletions
diff --git a/django/db/backends/base/schema.py b/django/db/backends/base/schema.py
index cc33740195..96d555f862 100644
--- a/django/db/backends/base/schema.py
+++ b/django/db/backends/base/schema.py
@@ -1660,7 +1660,9 @@ class BaseDatabaseSchemaEditor:
return output
def _field_should_be_altered(self, old_field, new_field, ignore=None):
- if not old_field.concrete and not new_field.concrete:
+ if (not (old_field.concrete or old_field.many_to_many)) and (
+ not (new_field.concrete or new_field.many_to_many)
+ ):
return False
ignore = ignore or set()
_, old_path, old_args, old_kwargs = old_field.deconstruct()
@@ -1692,8 +1694,10 @@ class BaseDatabaseSchemaEditor:
):
old_kwargs.pop("db_default")
new_kwargs.pop("db_default")
- return self.quote_name(old_field.column) != self.quote_name(
- new_field.column
+ return (
+ old_field.concrete
+ and new_field.concrete
+ and (self.quote_name(old_field.column) != self.quote_name(new_field.column))
) or (old_path, old_args, old_kwargs) != (new_path, new_args, new_kwargs)
def _field_should_be_indexed(self, model, field):
diff --git a/django/db/backends/sqlite3/schema.py b/django/db/backends/sqlite3/schema.py
index ac6ae5efbd..077a53bf55 100644
--- a/django/db/backends/sqlite3/schema.py
+++ b/django/db/backends/sqlite3/schema.py
@@ -144,7 +144,7 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor):
# Choose a default and insert it into the copy map
if (
not create_field.has_db_default()
- and not (create_field.many_to_many or create_field.generated)
+ and not create_field.generated
and create_field.concrete
):
mapping[create_field.column] = self.prepare_default(