mirror of
				https://github.com/encode/django-rest-framework.git
				synced 2025-10-31 16:07:38 +03:00 
			
		
		
		
	3.15 Release (#9210)
* Release Notes for 3.15 - Add docs/community/3.15-announcement.md - Update docs/community/release-notes.md - Update mkdocs.yml Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com> * Release date pending bump * Changes to docs should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to docs should not be included in release notes. * Fix typo * Changes to tests should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to tests should not be included in release notes. * Changes to tests should not be included in release notes. * Fix typo in release notes. * Changes to project workflow should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to tests should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Improve changelog entry * Changes to docs should not be included in release notes. * Changes to docs should not be included in release notes. * Changes to project workflow should not be included in release notes. * Changes to docs should not be included in release notes. * Update docs/community/3.15-announcement.md Co-authored-by: Asif Saif Uddin <auvipy@gmail.com> * Update docs/community/3.15-announcement.md * Update docs/community/3.15-announcement.md * Update docs/community/release-notes.md * Update docs/community/release-notes.md Co-authored-by: Christian Clauss <cclauss@me.com> * Update docs/community/release-notes.md Co-authored-by: Christian Clauss <cclauss@me.com> * Update docs/community/3.15-announcement.md Co-authored-by: JAEGYUN JUNG <twicegoddessana1229@gmail.com> * Update docs/community/release-notes.md * Update docs/community/release-notes.md Co-authored-by: JAEGYUN JUNG <twicegoddessana1229@gmail.com> * Update release version * Update supported Python and Django versions --------- Co-authored-by: Rodrigo <rodrigo@crowdbotics.com> Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com> Co-authored-by: Asif Saif Uddin <auvipy@gmail.com> Co-authored-by: Christian Clauss <cclauss@me.com> Co-authored-by: JAEGYUN JUNG <twicegoddessana1229@gmail.com>
This commit is contained in:
		
							parent
							
								
									a677b09729
								
							
						
					
					
						commit
						2d8e9ad819
					
				
							
								
								
									
										58
									
								
								docs/community/3.15-announcement.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								docs/community/3.15-announcement.md
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,58 @@ | |||
| <style> | ||||
| .promo li a { | ||||
|     float: left; | ||||
|     width: 130px; | ||||
|     height: 20px; | ||||
|     text-align: center; | ||||
|     margin: 10px 30px; | ||||
|     padding: 150px 0 0 0; | ||||
|     background-position: 0 50%; | ||||
|     background-size: 130px auto; | ||||
|     background-repeat: no-repeat; | ||||
|     font-size: 120%; | ||||
|     color: black; | ||||
| } | ||||
| .promo li { | ||||
|     list-style: none; | ||||
| } | ||||
| </style> | ||||
| 
 | ||||
| # Django REST framework 3.15 | ||||
| 
 | ||||
| At the Internet, on March 15th, 2024, with 176 commits by 138 authors, we are happy to announce the release of Django REST framework 3.15. | ||||
| 
 | ||||
| ## Django 5.0 and Python 3.12 support | ||||
| 
 | ||||
| The latest release now fully supports Django 5.0 and Python 3.12. | ||||
| 
 | ||||
| The current minimum versions of Django still is 3.0 and Python 3.6. | ||||
| 
 | ||||
| ## Primary Support of UniqueConstraint | ||||
| 
 | ||||
| `ModelSerializer` generates validators for [UniqueConstraint](https://docs.djangoproject.com/en/4.0/ref/models/constraints/#uniqueconstraint) (both UniqueValidator and UniqueTogetherValidator) | ||||
| 
 | ||||
| ## ValidationErrors improvements | ||||
| 
 | ||||
| The `ValidationError` has been aligned with Django's, currently supporting the same style (signature) and nesting. | ||||
| 
 | ||||
| ## SimpleRouter non-regex matching support | ||||
| 
 | ||||
| By default the URLs created by `SimpleRouter` use regular expressions. This behavior can be modified by setting the `use_regex_path` argument to `False` when instantiating the router. | ||||
| 
 | ||||
| ## ZoneInfo as the primary source of timezone data | ||||
| 
 | ||||
| Dependency on pytz has been removed and deprecation warnings have been added, Django will provide ZoneInfo instances as long as USE_DEPRECATED_PYTZ is not enabled. More info on the migration can be found [in this guide](https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html). | ||||
| 
 | ||||
| ##  Align `SearchFilter` behaviour to `django.contrib.admin` search | ||||
| 
 | ||||
| Searches now may contain _quoted phrases_ with spaces, each phrase is considered as a single search term, and it will raise a validation error if any null-character is provided in search. See the [Filtering API guide](../api-guide/filtering.md) for more information. | ||||
| 
 | ||||
| ## Default values propagation | ||||
| 
 | ||||
| Model fields' default values are now propagated to serializer fields, for more information see the [Serializer fields API guide](../api-guide/fields.md#default). | ||||
| 
 | ||||
| ## Other fixes and improvements | ||||
| 
 | ||||
| There are a number of fixes and minor improvements in this release, ranging from documentation, internal infrastructure (typing, testing, requirements, deprecation, etc.), security and overall behaviour. | ||||
| 
 | ||||
| See the [release notes](release-notes.md) page for a complete listing. | ||||
|  | @ -34,6 +34,90 @@ You can determine your currently installed version using `pip show`: | |||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## 3.15.x series | ||||
| 
 | ||||
| ### 3.15.0 | ||||
| 
 | ||||
| Date: 15th March 2024 | ||||
| 
 | ||||
| * Django 5.0 and Python 3.12 support [[#9157] (https://github.com/encode/django-rest-framework/pull/9157)] | ||||
| * Use POST method instead of GET to perform logout in browsable API [[9208] (https://github.com/encode/django-rest-framework/pull/9208)] | ||||
| * Added jQuery 3.7.1 support & dropped previous version [[#9094](https://github.com/encode/django-rest-framework/pull/9094)] | ||||
| * Use str as default path converter [[#9066](https://github.com/encode/django-rest-framework/pull/9066)] | ||||
| * Document support for http.HTTPMethod in the @action decorator added in Python 3.11 [[#9067](https://github.com/encode/django-rest-framework/pull/9067)] | ||||
| * Update exceptions.md [[#9071](https://github.com/encode/django-rest-framework/pull/9071)] | ||||
| * Partial serializer should not have required fields [[#7563](https://github.com/encode/django-rest-framework/pull/7563)] | ||||
| * Propagate 'default' from model field to serializer field. [[#9030](https://github.com/encode/django-rest-framework/pull/9030)] | ||||
| * Allow to override child.run_validation call in ListSerializer [[#8035](https://github.com/encode/django-rest-framework/pull/8035)] | ||||
| * Align SearchFilter behaviour to django.contrib.admin search [[#9017](https://github.com/encode/django-rest-framework/pull/9017)] | ||||
| * Class name added to unknown field error [[#9019](https://github.com/encode/django-rest-framework/pull/9019)] | ||||
| * Fix: Pagination response schemas. [[#9049](https://github.com/encode/django-rest-framework/pull/9049)] | ||||
| * Fix choices in ChoiceField to support IntEnum [[#8955](https://github.com/encode/django-rest-framework/pull/8955)] | ||||
| * Fix `SearchFilter` rendering search field with invalid value [[#9023](https://github.com/encode/django-rest-framework/pull/9023)] | ||||
| * Fix OpenAPI Schema yaml rendering for `timedelta` [[#9007](https://github.com/encode/django-rest-framework/pull/9007)] | ||||
| * Fix `NamespaceVersioning` ignoring `DEFAULT_VERSION` on non-None namespaces [[#7278](https://github.com/encode/django-rest-framework/pull/7278)] | ||||
| * Added Deprecation Warnings for CoreAPI [[#7519](https://github.com/encode/django-rest-framework/pull/7519)] | ||||
| * Removed usage of `field.choices` that triggered full table load [[#8950](https://github.com/encode/django-rest-framework/pull/8950)] | ||||
| * Permit mixed casing of string values for `BooleanField` validation [[#8970](https://github.com/encode/django-rest-framework/pull/8970)] | ||||
| * Fixes `BrowsableAPIRenderer` for usage with `ListSerializer`. [[#7530](https://github.com/encode/django-rest-framework/pull/7530)] | ||||
| * Change semantic of `OR` of two permission classes [[#7522](https://github.com/encode/django-rest-framework/pull/7522)] | ||||
| * Remove dependency on `pytz` [[#8984](https://github.com/encode/django-rest-framework/pull/8984)] | ||||
| * Make set_value a method within `Serializer` [[#8001](https://github.com/encode/django-rest-framework/pull/8001)] | ||||
| * Fix URLPathVersioning reverse fallback [[#7247](https://github.com/encode/django-rest-framework/pull/7247)] | ||||
| * Warn about Decimal type in min_value and max_value arguments of DecimalField [[#8972](https://github.com/encode/django-rest-framework/pull/8972)] | ||||
| * Fix mapping for choice values [[#8968](https://github.com/encode/django-rest-framework/pull/8968)] | ||||
| * Refactor read function to use context manager for file handling [[#8967](https://github.com/encode/django-rest-framework/pull/8967)] | ||||
| * Fix: fallback on CursorPagination ordering if unset on the view [[#8954](https://github.com/encode/django-rest-framework/pull/8954)] | ||||
| * Replaced `OrderedDict` with `dict` [[#8964](https://github.com/encode/django-rest-framework/pull/8964)] | ||||
| * Refactor get_field_info method to include max_digits and decimal_places attributes in SimpleMetadata class [[#8943](https://github.com/encode/django-rest-framework/pull/8943)] | ||||
| * Implement `__eq__` for validators [[#8925](https://github.com/encode/django-rest-framework/pull/8925)] | ||||
| * Ensure CursorPagination respects nulls in the ordering field [[#8912](https://github.com/encode/django-rest-framework/pull/8912)] | ||||
| * Use ZoneInfo as primary source of timezone data [[#8924](https://github.com/encode/django-rest-framework/pull/8924)] | ||||
| * Add username search field for TokenAdmin (#8927) [[#8934](https://github.com/encode/django-rest-framework/pull/8934)] | ||||
| * Handle Nested Relation in SlugRelatedField when many=False [[#8922](https://github.com/encode/django-rest-framework/pull/8922)] | ||||
| * Bump version of jQuery to 3.6.4 & updated ref links [[#8909](https://github.com/encode/django-rest-framework/pull/8909)] | ||||
| * Support UniqueConstraint [[#7438](https://github.com/encode/django-rest-framework/pull/7438)] | ||||
| * Allow Request, Response, Field, and GenericAPIView to be subscriptable. This allows the classes to be made generic for type checking. [[#8825](https://github.com/encode/django-rest-framework/pull/8825)] | ||||
| * Feat: Add some changes to ValidationError to support django style validation errors [[#8863](https://github.com/encode/django-rest-framework/pull/8863)] | ||||
| * Fix Respect `can_read_model` permission in DjangoModelPermissions [[#8009](https://github.com/encode/django-rest-framework/pull/8009)] | ||||
| * Add SimplePathRouter [[#6789](https://github.com/encode/django-rest-framework/pull/6789)] | ||||
| * Re-prefetch related objects after updating [[#8043](https://github.com/encode/django-rest-framework/pull/8043)] | ||||
| * Fix FilePathField required argument [[#8805](https://github.com/encode/django-rest-framework/pull/8805)] | ||||
| * Raise ImproperlyConfigured exception if `basename` is not unique  [[#8438](https://github.com/encode/django-rest-framework/pull/8438)] | ||||
| * Use PrimaryKeyRelatedField pkfield in openapi [[#8315](https://github.com/encode/django-rest-framework/pull/8315)] | ||||
| * replace partition with split in BasicAuthentication [[#8790](https://github.com/encode/django-rest-framework/pull/8790)] | ||||
| * Fix BooleanField's allow_null behavior [[#8614](https://github.com/encode/django-rest-framework/pull/8614)] | ||||
| * Handle Django's ValidationErrors in ListField [[#6423](https://github.com/encode/django-rest-framework/pull/6423)] | ||||
| * Remove a bit of inline CSS. Add CSP nonce where it might be required and is available [[#8783](https://github.com/encode/django-rest-framework/pull/8783)] | ||||
| * Use autocomplete widget for user selection in Token admin [[#8534](https://github.com/encode/django-rest-framework/pull/8534)] | ||||
| * Make browsable API compatible with strong CSP [[#8784](https://github.com/encode/django-rest-framework/pull/8784)] | ||||
| * Avoid inline script execution for injecting CSRF token [[#7016](https://github.com/encode/django-rest-framework/pull/7016)] | ||||
| * Mitigate global dependency on inflection #8017 [[#8017](https://github.com/encode/django-rest-framework/pull/8017)] [[#8781](https://github.com/encode/django-rest-framework/pull/8781)] | ||||
| * Register Django urls  [[#8778](https://github.com/encode/django-rest-framework/pull/8778)] | ||||
| * Implemented Verbose Name Translation for TokenProxy [[#8713](https://github.com/encode/django-rest-framework/pull/8713)] | ||||
| * Properly handle OverflowError in DurationField deserialization [[#8042](https://github.com/encode/django-rest-framework/pull/8042)] | ||||
| * Fix OpenAPI operation name plural appropriately [[#8017](https://github.com/encode/django-rest-framework/pull/8017)] | ||||
| * Represent SafeString as plain string on schema rendering [[#8429](https://github.com/encode/django-rest-framework/pull/8429)] | ||||
| * Fix #8771 - Checking for authentication even if `_ignore_model_permissions = True` [[#8772](https://github.com/encode/django-rest-framework/pull/8772)] | ||||
| * Fix 404 when page query parameter is empty string [[#8578](https://github.com/encode/django-rest-framework/pull/8578)] | ||||
| * Fixes instance check in ListSerializer.to_representation [[#8726](https://github.com/encode/django-rest-framework/pull/8726)] [[#8727](https://github.com/encode/django-rest-framework/pull/8727)] | ||||
| * FloatField will crash if the input is a number that is too big [[#8725](https://github.com/encode/django-rest-framework/pull/8725)] | ||||
| * Add missing DurationField to SimpleMetada label_lookup [[#8702](https://github.com/encode/django-rest-framework/pull/8702)] | ||||
| * Add support for Python 3.11 [[#8752](https://github.com/encode/django-rest-framework/pull/8752)] | ||||
| * Make request consistently available in pagination classes [[#8764](https://github.com/encode/django-rest-framework/pull/9764)] | ||||
| * Possibility to remove trailing zeros on DecimalFields representation [[#6514](https://github.com/encode/django-rest-framework/pull/6514)] | ||||
| * Add a method for getting serializer field name (OpenAPI) [[#7493](https://github.com/encode/django-rest-framework/pull/7493)] | ||||
| * Add `__eq__` method for `OperandHolder` class [[#8710](https://github.com/encode/django-rest-framework/pull/8710)] | ||||
| * Avoid importing `django.test` package when not testing  [[#8699](https://github.com/encode/django-rest-framework/pull/8699)] | ||||
| * Preserve exception messages for wrapped Django exceptions [[#8051](https://github.com/encode/django-rest-framework/pull/8051)] | ||||
| * Include `examples` and `format` to OpenAPI schema of CursorPagination [[#8687] (https://github.com/encode/django-rest-framework/pull/8687)] [[#8686](https://github.com/encode/django-rest-framework/pull/8686)] | ||||
| * Fix infinite recursion with deepcopy on Request [[#8684](https://github.com/encode/django-rest-framework/pull/8684)] | ||||
| * Refactor: Replace try/except with contextlib.suppress() [[#8676](https://github.com/encode/django-rest-framework/pull/8676)] | ||||
| * Minor fix to SerializeMethodField docstring [[#8629](https://github.com/encode/django-rest-framework/pull/8629)] | ||||
| * Minor refactor: Unnecessary use of list() function [[#8672](https://github.com/encode/django-rest-framework/pull/8672)] | ||||
| * Unnecessary list comprehension [[#8670](https://github.com/encode/django-rest-framework/pull/8670)] | ||||
| * Use correct class to indicate present deprecation [[#8665](https://github.com/encode/django-rest-framework/pull/8665)] | ||||
| 
 | ||||
| ## 3.14.x series | ||||
| 
 | ||||
| ### 3.14.0 | ||||
|  |  | |||
|  | @ -65,6 +65,7 @@ nav: | |||
|      - 'Contributing to REST framework': 'community/contributing.md' | ||||
|      - 'Project management': 'community/project-management.md' | ||||
|      - 'Release Notes': 'community/release-notes.md' | ||||
|      - '3.15 Announcement': 'community/3.15-announcement.md' | ||||
|      - '3.14 Announcement': 'community/3.14-announcement.md' | ||||
|      - '3.13 Announcement': 'community/3.13-announcement.md' | ||||
|      - '3.12 Announcement': 'community/3.12-announcement.md' | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ ______ _____ _____ _____    __ | |||
| import django | ||||
| 
 | ||||
| __title__ = 'Django REST framework' | ||||
| __version__ = '3.14.0' | ||||
| __version__ = '3.15.0' | ||||
| __author__ = 'Tom Christie' | ||||
| __license__ = 'BSD 3-Clause' | ||||
| __copyright__ = 'Copyright 2011-2023 Encode OSS Ltd' | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user