Fix to handle proxy model and multiple M2M situations #270
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.
I ran into some issues dealing with M2M relationships resulting in "null" being recorded as the fieldname for adds/removes on changes to proxy models which led me to #207
This PR re-writes
get_m2m_field_name
to use thesender
that gets passed to the signal handler, which happens to be the through model.Given the through model, the changed instance, and the added model; we can uniquely determine which field on the instance model was changed, even if the originating model has multiple M2M relationships with the remote model (since each will use a different intermediate model).
There was also an issue that I didn't see in the issue tracker that came up for me; if the changed instance was a proxy model then get_m2m_field_name would return
None
. This also resolves that issue since we are searching for the field directly