Skip to content

Make set_value a method within Serializer #8001

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

Merged
merged 4 commits into from
May 24, 2023

Conversation

tienne-B
Copy link
Contributor

As an alternative to #7671, let the method be overridden if needed.

As the function is only used for serializers, it has a better place in the Serializer class than standalone in the fields file.

As an alternative to encode#7671, let the method be overridden if needed. As
the function is only used for serializers, it has a better place in the
Serializer class.
@stale
Copy link

stale bot commented Apr 18, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Apr 18, 2022
@tienne-B
Copy link
Contributor Author

I do think this PR is still pertinent as it would make it so I wouldn't have to override an unrelated method as I currently do.

@stale stale bot removed the stale label Apr 18, 2022
@stale
Copy link

stale bot commented Jun 18, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Jun 18, 2022
@tienne-B
Copy link
Contributor Author

I repeat.

@stale stale bot removed the stale label Jun 18, 2022
@stale
Copy link

stale bot commented Oct 19, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Oct 19, 2022
@tomchristie tomchristie removed the stale label Oct 19, 2022
@tomchristie
Copy link
Member

Okay...

I'm open to considering this. We're pretty much not adding public API to REST framework anymore, but let's take a look.

I'd suggest start off by changing it to not be a staticmethod. Agreed that it functionally is, but we don't use that much through REST framework, so let's stick with consistency.

That edit should also bump the test cases to run against this pull request.

@auvipy auvipy closed this Dec 1, 2022
@auvipy auvipy reopened this Dec 1, 2022
@auvipy auvipy added the Cleanup label Dec 1, 2022
@auvipy
Copy link
Member

auvipy commented Dec 1, 2022

That edit should also bump the test cases to run against this pull request.

does that mean some additional tests should be added or tests should be adjusted as well?

These tests follow the examples given in the method.
@tienne-B
Copy link
Contributor Author

@auvipy There were no tests specifically for set_value() so I've added a couple cases from the method doc.

@@ -346,6 +346,26 @@ class Serializer(BaseSerializer, metaclass=SerializerMetaclass):
'invalid': _('Invalid data. Expected a dictionary, but got {datatype}.')
}

def set_value(self, dictionary, keys, value):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need any documentation update // adjustments for the new changes?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't think so, as the change is really just internal and does not affect how set_value() works. Would you want me to document the changes somewhere?

@tienne-B tienne-B requested a review from auvipy February 28, 2023 12:13
@stale
Copy link

stale bot commented May 21, 2023

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label May 21, 2023
@tienne-B
Copy link
Contributor Author

I'm still interested in this, and waiting for a reply from @auvipy.

@stale stale bot removed the stale label May 21, 2023
@auvipy
Copy link
Member

auvipy commented May 24, 2023

I'm still interested in this, and waiting for a reply from @auvipy.

can you edit the PR headline as per the suggested change by Tom?

@tienne-B tienne-B changed the title Make set_value a static method for Serializers Make set_value a method within Serializer May 24, 2023
@tienne-B
Copy link
Contributor Author

can you edit the PR headline as per the suggested change by Tom?

Done :)

@auvipy auvipy added this to the 3.15 milestone May 24, 2023
@auvipy auvipy merged commit d252d22 into encode:master May 24, 2023
@tienne-B tienne-B deleted the set_value_static branch May 24, 2023 14:07
saadullahaleem pushed a commit to saadullahaleem/django-rest-framework that referenced this pull request May 27, 2023
* Make set_value a static method for Serializers

As an alternative to encode#7671, let the method be overridden if needed. As
the function is only used for serializers, it has a better place in the
Serializer class.

* Set `set_value` as an object (non-static) method

* Add tests for set_value()

These tests follow the examples given in the method.
saadullahaleem pushed a commit to saadullahaleem/django-rest-framework that referenced this pull request May 27, 2023
* Make set_value a static method for Serializers

As an alternative to encode#7671, let the method be overridden if needed. As
the function is only used for serializers, it has a better place in the
Serializer class.

* Set `set_value` as an object (non-static) method

* Add tests for set_value()

These tests follow the examples given in the method.
auvipy added a commit that referenced this pull request May 29, 2023
* fix: Make the instance variable of child serializer point to the correct list object instead of the entire list when validating ListSerializer

* fix formatting issues for list serializer validation fix

* fix imports sorting for list serializer tests

* remove django 2.2 from docs index (#8982)

* Declared Django 4.2 support in README.md (#8985)

* Fix Links in Documentation to Django `reverse` and `reverse_lazy` (#8986)

* Fix Django Docs url in reverse.md

Django URLs of the documentation of `reverse` and `reverse_lazy` were wrong.

* Update reverse.md

* fix URLPathVersioning reverse fallback (#7247)

* fix URLPathVersioning reverse fallback

* add test for URLPathVersioning reverse fallback

* Update tests/test_versioning.py

---------

Co-authored-by: Jorn van Wier <jorn.van.wier@thunderbyte.ai>
Co-authored-by: Asif Saif Uddin <auvipy@gmail.com>

* Make set_value a method within `Serializer` (#8001)

* Make set_value a static method for Serializers

As an alternative to #7671, let the method be overridden if needed. As
the function is only used for serializers, it has a better place in the
Serializer class.

* Set `set_value` as an object (non-static) method

* Add tests for set_value()

These tests follow the examples given in the method.

* fix: Make the instance variable of child serializer point to the correct list object instead of the entire list when validating ListSerializer

* Make set_value a method within `Serializer` (#8001)

* Make set_value a static method for Serializers

As an alternative to #7671, let the method be overridden if needed. As
the function is only used for serializers, it has a better place in the
Serializer class.

* Set `set_value` as an object (non-static) method

* Add tests for set_value()

These tests follow the examples given in the method.

* fix: Make the instance variable of child serializer point to the correct list object instead of the entire list when validating ListSerializer

* fix: Make the instance variable of child serializer point to the correct list object instead of the entire list when validating ListSerializer

* fix formatting issues for list serializer validation fix

* fix: Make the instance variable of child serializer point to the correct list object instead of the entire list when validating ListSerializer

* fix formatting issues for list serializer validation fix

* fix linting

* Update rest_framework/serializers.py

Co-authored-by: Sergei Shishov <sshishov@users.noreply.github.com>

* Update rest_framework/serializers.py

Co-authored-by: Sergei Shishov <sshishov@users.noreply.github.com>

* fix: instance variable in list serializer, remove commented code

---------

Co-authored-by: Mathieu Dupuy <deronnax@gmail.com>
Co-authored-by: Mehraz Hossain Rumman <59512321+MehrazRumman@users.noreply.github.com>
Co-authored-by: Dominik Bruhn <dominik@dbruhn.de>
Co-authored-by: jornvanwier <mail@jornvanwier.com>
Co-authored-by: Jorn van Wier <jorn.van.wier@thunderbyte.ai>
Co-authored-by: Asif Saif Uddin <auvipy@gmail.com>
Co-authored-by: Étienne Beaulé <beauleetienne0@gmail.com>
Co-authored-by: Sergei Shishov <sshishov@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants