Improve composite field child errors #5655
Merged
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 #3274
This is an extension of the discussion in #5644. Errors raised on composite fields (
DictField
&ListField
) are confusing, since child validation errors don't contain any indication of what index/key failed.As stated by the django docs, the hstore field accepts nulls as values.
With the below input data, we currently exhibit the following error:
The above error is not helpful, since it fails to mention that this applies to the
"second"
key. The proposed solution is to nest the errors by index/key.before:
{'attributes': ['This field may not be null.']}
after:
{'attributes': {'second': ["This field may not be null."]}}
TODO:
Errors should be tested against HTML forms.ListField/DictField inputs are non-functional.