Commit Graph

8703 Commits

Author SHA1 Message Date
Saad Aleem
0dc62010b1
Update rest_framework/serializers.py
Co-authored-by: Sergei Shishov <sshishov@users.noreply.github.com>
2023-05-27 21:27:25 +05:00
Asif Saif Uddin
bb4102a162
Update rest_framework/serializers.py
Co-authored-by: Sergei Shishov <sshishov@users.noreply.github.com>
2023-05-27 18:17:51 +06:00
Saadullah Aleem
7197a86428 fix linting 2023-05-27 16:39:26 +05:00
Saadullah Aleem
95778807e1 Merge branch 'master' into fix/list_serializer_validation 2023-05-27 16:37:08 +05:00
Saadullah Aleem
74cb5002f5 fix formatting issues for list serializer validation fix 2023-05-27 15:20:17 +05:00
Saadullah Aleem
c1ee7e75b1 fix: Make the instance variable of child serializer point to the correct list object instead of the entire list when validating ListSerializer 2023-05-27 15:20:17 +05:00
Saadullah Aleem
76110bf8a5 fix formatting issues for list serializer validation fix 2023-05-27 14:46:32 +05:00
Saadullah Aleem
9ac6417aad fix: Make the instance variable of child serializer point to the correct list object instead of the entire list when validating ListSerializer 2023-05-27 14:46:29 +05:00
Saadullah Aleem
a1f03d5ee6 fix: Make the instance variable of child serializer point to the correct list object instead of the entire list when validating ListSerializer 2023-05-27 14:30:05 +05:00
Étienne Beaulé
f969143c95 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.
2023-05-27 14:26:40 +05:00
Saadullah Aleem
869d46fc42 fix: Make the instance variable of child serializer point to the correct list object instead of the entire list when validating ListSerializer 2023-05-27 14:23:54 +05:00
Étienne Beaulé
b9b50bd0cc 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.
2023-05-27 14:21:55 +05:00
jornvanwier
8d7e250046 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>
2023-05-27 14:21:19 +05:00
Dominik Bruhn
01b99ddb9e 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
2023-05-27 14:21:19 +05:00
Mehraz Hossain Rumman
e6655e3b97 Declared Django 4.2 support in README.md (#8985) 2023-05-27 14:21:19 +05:00
Mathieu Dupuy
b9c8d1923d remove django 2.2 from docs index (#8982) 2023-05-27 14:21:19 +05:00
Étienne Beaulé
d252d22343
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.
2023-05-24 19:59:42 +06:00
jornvanwier
a25aac7d67
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>
2023-05-18 09:46:40 +06:00
Dominik Bruhn
332e9560ab
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
2023-05-17 11:46:48 +06:00
Mehraz Hossain Rumman
7bebe97724
Declared Django 4.2 support in README.md (#8985) 2023-05-15 21:02:17 +06:00
Mathieu Dupuy
001d6ec2c9
remove django 2.2 from docs index (#8982) 2023-05-14 06:00:13 +06:00
Saadullah Aleem
516ba527dd fix imports sorting for list serializer tests 2023-05-11 01:36:00 +05:00
Saadullah Aleem
4bbc689ec5 fix formatting issues for list serializer validation fix 2023-05-11 01:33:19 +05:00
Saadullah Aleem
a717d74f3c fix: Make the instance variable of child serializer point to the correct list object instead of the entire list when validating ListSerializer 2023-05-11 01:19:12 +05:00
Ismael Jiménez Sánchez
99e8b4033e
feat: enforce Decimal type in min_value and max_value arguments of DecimalField (#8972)
* add warning when min_value and max_value are not decimal

* remove redundant module name in log

---------

Co-authored-by: ismaeljs <>
2023-05-09 20:50:29 +06:00
Saad Aleem
e08e606c82
Fix mapping for choice values (#8968)
* fix mapping for choice values

* fix tests for ChoiceField IntegerChoices

* fix imports

* fix imports in tests

* Check for multiple choice enums

* fix formatting

* add tests for text choices class
2023-05-03 13:08:07 +06:00
Mahdi Rahimi
d14eb7555d
Refactor read function to use context manager for file handling (#8967)
Co-authored-by: Mahdi <mahdi@Mahdis-MacBook-Pro.local>
2023-05-02 22:09:19 +06:00
fdomain
f1a11d41cb
fix: fallback on CursorPagination ordering if unset on the view (#8954)
* this commit fixes the usage of a CursorPagination combined with a view
  implementing an ordering filter, without a default ordering value.
* former behavior was to fetch the ordering value from the filter, and
  raises an error if the value was None, preventing the fallback on the
  ordering set on the CursorPagination class itself.
* we reversed the logic by getting first the value set on the class,
  and override it by the ordering filter if the parameter is present
2023-05-02 06:55:59 +06:00
suayip uzulmez
54307a4394
Replaced OrderedDict with dict (#8964) 2023-04-30 15:20:02 +06:00
Mahdi Rahimi
1ce0853ac5
Refactor get_field_info method to include max_digits and decimal_places attributes in SimpleMetadata class (#8943)
* Refactor get_field_info method to include max_digits and decimal_places attributes in SimpleMetadata class

* Add new test to check decimal_field_info_type

* Update rest_framework/metadata.py

---------

Co-authored-by: Mahdi <mahdi@Mahdis-MacBook-Pro.local>
Co-authored-by: Asif Saif Uddin <auvipy@gmail.com>
2023-04-27 10:24:13 +06:00
Asif Saif Uddin
38a74b42da
Revert "test codecov gha (#8946)" (#8947)
This reverts commit 684522807f.
2023-04-15 12:11:35 +06:00
Asif Saif Uddin
684522807f
test codecov gha (#8946) 2023-04-13 21:48:45 +06:00
Maxwell Muoto
0d6ef034d2
Implement __eq__ for validators (#8925)
* Implement equality operator and add test coverage

* Add documentation on implementation
2023-04-09 14:53:47 +06:00
ddelange
b1cec517ff
Ensure CursorPagination respects nulls in the ordering field (#8912)
* Ensure CursorPagination respects nulls in the ordering field

* Lint

* Fix pagination tests

* Add test_ascending with nulls

* Push tests for nulls

* Test pass

* Add comment

* Fix test for django30
2023-04-08 16:42:28 +06:00
Maxwell Muoto
62abf6ac1f
Use ZoneInfo as primary source of timezone data (#8924)
* Use ZoneInfo as primary source of timezone data

* Update tests/test_fields.py

---------

Co-authored-by: Asif Saif Uddin <auvipy@gmail.com>
2023-04-08 15:16:00 +06:00
Nikita Reznikov
4842ad1b6a
Add username search field for TokenAdmin (#8927) (#8934)
* Add username search field for TokenAdmin (#8927)

* Sort imports in a proper order (#8927)
2023-04-08 14:56:49 +06:00
Arnab Kumar Shil
959085c145
Handle Nested Relation in SlugRelatedField when many=False (#8922)
* Update relations.py

Currently if you define the slug field as a nested relationship in a `SlugRelatedField` while many=False, it will cause an attribute error. For example:

For this code:
```
class SomeSerializer(serializers.ModelSerializer):
    some_field= serializers.SlugRelatedField(queryset=SomeClass.objects.all(), slug_field="foo__bar")
```
The POST request (or save operation) should work just fine, but if you use GET, then it will fail with Attribute error:

> AttributeError: 'SomeClass' object has no attribute 'foo__bar'

Thus I am handling nested relation here. Reference: https://stackoverflow.com/questions/75878103/drf-attributeerror-when-trying-to-creating-a-instance-with-slugrelatedfield-and/75882424#75882424

* Fixed test cases

* code comment changes related to slugrelatedfield

* changes based on pre-commit and removed comma which was added accidentally

* fixed primary keys of the mock object

* added more test cases based on review

---------

Co-authored-by: Arnab Shil <arnab.shil@thermofisher.com>
2023-04-08 12:27:14 +06:00
Christian Franke
ea03e95174
docs: Fix authentication / authorization mixup (#8930)
`IsAuthenticatedOrReadOnly` authorizes users that are not
authenticated for read-only access to resources.

Therefore, they are unauthenticated users, not unauthorized users.
2023-04-04 14:44:59 +06:00
Christian Franke
3428cec194
Use consistent spelling for "authorization" (#8929)
Apart from a few exceptions, django-rest-framework uses the American
English spelling "authorization"/"authorized".

    $ git grep -oi authorised | wc -l
    2
    $ git grep -oi authorized | wc -l
    30

Replace the few occurences of the British English spelling with the
American English one.
2023-04-04 13:38:23 +06:00
Asif Saif Uddin
b60fbf3374
test django 4.2 stable release (#8932) 2023-04-03 22:35:11 +06:00
Asif Saif Uddin
6b73acc173
Update requirements-packaging.txt (#8921) 2023-03-28 16:35:44 +06:00
Asif Saif Uddin
59430111bd
Update tox with django 4.2rc1 (#8920) 2023-03-28 16:08:27 +06:00
Asif Saif Uddin
29b6dd8ed2
Bump version of jQuery to 3.6.4 & updated ref links (#8909) 2023-03-28 15:43:25 +06:00
Mathieu Dupuy
c9e7b68a4c
minor documentation improvements and fixes (#8903)
* minor documentation improvements and fixes

* Update docs/api-guide/fields.md

---------

Co-authored-by: Tom Christie <tom@tomchristie.com>
2023-03-14 13:31:34 +00:00
Konstantin Alekseev
b7523f4b9f
Support UniqueConstraint (#7438) 2023-03-03 13:04:47 +06:00
Asif Saif Uddin
9882207c16
test django 4.2b1 (#8892) 2023-02-28 22:02:12 +06:00
Jayant
3f8ab538c1
docs: add missing renderer import in tutorial 6 (#8885) 2023-02-27 00:06:48 +06:00
Jameel Al-Aziz
15c613a9eb
Allow generic requests, responses, fields, views (#8825)
Allow Request, Response, Field, and GenericAPIView to be subscriptable.
This allows the classes to be made generic for type checking.

This is especially useful since monkey patching DRF can be problematic
as seen in this [issue][1].

[1]: https://github.com/typeddjango/djangorestframework-stubs/issues/299
2023-02-22 21:39:01 +06:00
Jameel Al-Aziz
390daf7a92
Upgrade isort version in pre-commit (#8882)
This fixes recent issues with installing isort via pre-commit that was
introduced in recent versions of poetry-core.

See https://github.com/PyCQA/isort/pull/2078
2023-02-22 12:05:45 +06:00
Özgür
34953774f3
docs: fix code example (#8880) 2023-02-16 12:48:34 +06:00