-
-
Notifications
You must be signed in to change notification settings - Fork 6.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Partial updates always change fields that are not in data, read only, and have a default #3565
Comments
(My expectation would be that a partial update would only affect the fields that have data being sent their way.) |
… get switched to reserved when moved via the api.
Is this still occurring against the latest release? |
I tried upgrading to the latest stable release (3.3.1) and still had the issue, and I didn't see any changes between that and master in the relevant parts of the code. |
This is still present. The documentation (3.0 announcement, which is the only place I could find a reference to this) is also wrong: it doesn't mention that it'll only be used for read_only fields. |
Milestoning to confirm against latest version. |
I just updated to a DRF 3.4.5 and noticed this change in behavior between 3.4.1 and 3.4.2. This change is breaking a couple of tests for us and is also changing the semantics of how defaults are treated in DRF. May I ask to not have such backwards incompatible changes in patch releases in future versions. Thank you. |
Sure. That's always a bit more gray when the behavior is classified as a bug, but yes I do think that we'll start being more cautious about any change that affects behavior, even in bug cases, and deferring those to major releases. |
Thanks @tomchristie 😄 |
This is kind of an edge case, maybe? Maybe not. I ran into it because I have a field which is readonly on update but has a default for the create case.
See Serializer._writable_fields. I'm trying to do a partial update on one field, but I have another field that's readonly on update. BUT instead of being left alone, since it has a default, it always gets set TO THAT DEFAULT.
From my reading of writable_fields, it looks like this would happen with any field that has a default and isn't included in a partial update, but for it to happen on a read_only field seems particularly egregious to me. :-p
The text was updated successfully, but these errors were encountered: