[4.2.x] Fixed #23528 -- Doc'd django.db.migrations.swappable_dependency().

Backport of 7d96ce68ae from main
This commit is contained in:
DevilsAutumn 2023-05-16 15:29:01 +05:30 committed by Mariusz Felisiak
parent 738386470d
commit 92ad551afd
1 changed files with 20 additions and 0 deletions

View File

@ -218,6 +218,26 @@ Apps without migrations must not have relations (``ForeignKey``,
``ManyToManyField``, etc.) to apps with migrations. Sometimes it may work, but
it's not supported.
Swappable dependencies
----------------------
.. function:: django.db.migrations.swappable_dependency(value)
The ``swappable_dependency()`` function is used in migrations to declare
"swappable" dependencies on migrations in the app of the swapped-in model.
Currently, the first migration of this app and as a consequence the swapped-in
model should be created in the initial migration. The argument ``value`` is a
string ``"<app label>.<model>"`` describing an app label and a model name, e.g.
``"myapp.MyModel"``.
By using ``swappable_dependency()``, you inform the migration framework that
the migration relies on a migration which sets up up a swappable model,
allowing for the possibility of substituting the model with a different
implementation in the future. This is typically used for referencing models
that are subject to customization or replacement, such as the custom user
model (``settings.AUTH_USER_MODEL``, which defaults to ``"auth.User"``) in
Django's authentication system.
.. _migration-files:
Migration files