Prevent duplicate AttributeOptionGroup creation #373
Merged
+111
−33
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.
Fix: Prevent Duplicate
AttributeOptionGroupCreationResolves: #372
Context
The
optionsfield inAttributeOptionGroupSerializeris defined using:This means the serializer works with data like:
[ {"option": "Large"}, {"option": "Medium"} ]However, when updating existing instances, the model receives options as actual
AttributeOptioninstances:This mismatch caused
find_existing_attribute_option_groupto fail at detecting duplicates — resulting in unnecessary creation of duplicate option groups even when the name and options were the same.What Changed
Updated
find_existing_attribute_option_groupto:Accept and normalize both:
{"option": "Large"}-style dicts from the serializer, andAttributeOptioninstances from the model.Raise clear exceptions (
ValueError,TypeError) for bad input.