Fix issue 567 conditional save default #1279
Draft
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.
Fixes #567, where conditional saves fail for existing items when a new field with a default value is added to a model. The issue occurs because existing items have
null
or missing values, causing a mismatch during conditional saves.Changes
Model.save
to apply default values fornull
attributes before saving.update_items_with_default_values
utility to migrate existing items.tests/test_conditional_save.py
to verify the fix.docs/guide.rst
andCHANGELOG.md
.Testing
pytest-asyncio
to cover both existing and new items.black
andflake8
to ensure code style compliance.Closes #567.