Fix deletion of touristic content objects in parsers when an m2m constant field is not a list #4838
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.
Description
Unit tests are not complete: they pass even without the fix
-> See FIXME comments in the diffs
Related Issue
In parsers, the value of a many-to-many constant field can be either a string or a list of strings.
TouristicContentMixin
, inherited by some parsers, overrides theget_to_delete_kwargs
method and only supports lists of strings.As a result, objects that no longer appear in the source data are not deleted if a string is used as a many-to-many constant field, despite
delete = True
being set.This PR adds proper handling for strings as m2m constant field value in parsers that inherit
TouristicContentMixin
.Checklist
My code respects the Definition of done available in the Development section of the documentationI have made corresponding changes to the documentationMy commits are all using prefix convention (emoji + tag name) and references associated issuesThe title of my PR mentionned the issue associated