mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-05-26 01:03:12 +03:00
109 lines
3.5 KiB
Markdown
109 lines
3.5 KiB
Markdown
<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.9
|
|
|
|
The 3.9 release gives access to _extra actions_ in the Browsable API, introduces composable permissions and built-in [OpenAPI][openapi] schema support.
|
|
|
|
---
|
|
|
|
## Funding
|
|
|
|
If you use REST framework commercially and would like to see this work continue, we strongly encourage you to invest in its continued development by
|
|
**[signing up for a paid plan][funding]**.
|
|
|
|
|
|
TODO: UPDATE SPONSORS.
|
|
|
|
*We'd like to say thanks in particular our premium backers, [Rover](http://jobs.rover.com/), [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf), [Machinalis](https://hello.machinalis.co.uk/), and [Rollbar](https://rollbar.com).*
|
|
|
|
---
|
|
|
|
## ViewSet _Extra Actions_ available in the Browsable API
|
|
|
|
Following the introduction of the `action` decorator in v3.8, _extra actions_ defined on a ViewSet are now available
|
|
from the Browsable API.
|
|
|
|

|
|
|
|
When defined, a dropdown of "Extra Actions", appropriately filtered to detail/non-detail actions, is displayed.
|
|
|
|
## In-built OpenAPI schema support
|
|
|
|
TODO
|
|
|
|
---
|
|
|
|
## Deprecations
|
|
|
|
### `DjangoObjectPermissionsFilter` moved to third-party package.
|
|
|
|
The `DjangoObjectPermissionsFilter` class is pending deprecation, will be deprecated in 3.10 and removed entirely in 3.11.
|
|
|
|
It has been moved to the third-party [`djangorestframework-guardian`](https://github.com/rpkilby/django-rest-framework-guardian)
|
|
package. Please use this instead.
|
|
|
|
### Router argument/method renamed to use `basename` for consistency.
|
|
|
|
* The `Router.register` `base_name` argument has been renamed in favor of `basename`.
|
|
* The `Router.get_default_base_name` method has been renamed in favor of `Router.get_default_basename`. [#5990][gh5990]
|
|
|
|
See [#5990][gh5990].
|
|
|
|
[gh5990]: https://github.com/encode/django-rest-framework/pull/5990
|
|
|
|
`base_name` and `get_default_base_name()` are pending deprecation. They will be deprecated in 3.10 and removed entirely in 3.11.
|
|
|
|
### `action` decorator replaces `list_route` and `detail_route`
|
|
|
|
Both `list_route` and `detail_route` are now deprecated in favour of the single `action` decorator.
|
|
They will be removed entirely in 3.10.
|
|
|
|
The `action` decorator takes a boolean `detail` argument.
|
|
|
|
* Replace `detail_route` uses with `@action(detail=True)`.
|
|
* Replace `list_route` uses with `@action(detail=False)`.
|
|
|
|
### `exclude_from_schema`
|
|
|
|
Both `APIView.exclude_from_schema` and the `exclude_from_schema` argument to the `@api_view` have now been removed.
|
|
|
|
For `APIView` you should instead set a `schema = None` attribute on the view class.
|
|
|
|
For function based views the `@schema` decorator can be used to exclude the view from the schema, by using `@schema(None)`.
|
|
|
|
---
|
|
|
|
## Minor fixes and improvements
|
|
|
|
There are a large number of minor fixes and improvements in this release. See the [release notes](release-notes.md) page
|
|
for a complete listing.
|
|
|
|
|
|
## What's next
|
|
|
|
|
|
TODO...
|
|
|
|
|
|
[funding]: funding.md
|
|
[gh5886]: https://github.com/encode/django-rest-framework/issues/5886
|
|
[gh5705]: https://github.com/encode/django-rest-framework/issues/5705
|
|
[openapi]: https://www.openapis.org/
|