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 /django/db/backends | |
| 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 'django/db/backends')
| -rw-r--r-- | django/db/backends/base/schema.py | 10 | ||||
| -rw-r--r-- | django/db/backends/sqlite3/schema.py | 2 |
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( |
