#1266 resolving through tables defined as strings on m2m relations #1390
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds support for ManyToMany fields to specify their through tables as strings. In the case of referencing models in the same app you can now do
through="ModelName"
. If the model is in a different app you can dothrough="applabel.ModelName"
.Description
This works similarly to how django handles resolving the through field normally on ManyToManyFields. We leverage the django provided
lazy_related_operation
to delay resolving the actual through model until the relevant models have been loaded and made available by django.Related Issue
This addresses: #1266
Motivation and Context
Being able to define through tables as strings is crucial for supporting situations where importing the model class directly can lead to circular dependency issues.
How Has This Been Tested?
Unit tests and by implementing fork into a django project.
Screenshots (if appropriate):
Types of changes
Checklist:
pre-commit run
command to format and lint.AUTHORS.rst
CHANGES.rst