mirror of
https://github.com/encode/django-rest-framework.git
synced 2026-01-14 04:18:47 +03:00
Deployed 6499378f with MkDocs version: 1.0.4
This commit is contained in:
parent
e7f39c4485
commit
799c472733
160
404.html
160
404.html
|
|
@ -5,17 +5,17 @@
|
|||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
<title>Django REST framework</title>
|
||||
<link href="/img/favicon.ico" rel="icon" type="image/x-icon">
|
||||
<link href="//img/favicon.ico" rel="icon" type="image/x-icon">
|
||||
<link rel="canonical" href="" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="Django, API, REST">
|
||||
<meta name="author" content="Tom Christie">
|
||||
|
||||
<!-- Le styles -->
|
||||
<link href="/css/prettify.css" rel="stylesheet">
|
||||
<link href="/css/bootstrap.css" rel="stylesheet">
|
||||
<link href="/css/bootstrap-responsive.css" rel="stylesheet">
|
||||
<link href="/css/default.css" rel="stylesheet">
|
||||
<link href="//css/prettify.css" rel="stylesheet">
|
||||
<link href="//css/bootstrap.css" rel="stylesheet">
|
||||
<link href="//css/bootstrap-responsive.css" rel="stylesheet">
|
||||
<link href="//css/default.css" rel="stylesheet">
|
||||
|
||||
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||||
<!--[if lt IE 9]>
|
||||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small disabled" rel="prev" >
|
||||
<a class="repo-link btn btn-inverse btn-small disabled" rel="next" >
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small disabled" rel="next" >
|
||||
<a class="repo-link btn btn-inverse btn-small disabled" rel="prev" >
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="/">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="/tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/api-guide/settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="/topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="/community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="/community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -434,13 +434,13 @@
|
|||
<!-- Le javascript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="/js/jquery-1.8.1-min.js"></script>
|
||||
<script src="/js/prettify-1.0.js"></script>
|
||||
<script src="/js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="//js/jquery-1.8.1-min.js"></script>
|
||||
<script src="//js/prettify-1.0.js"></script>
|
||||
<script src="//js/bootstrap-2.1.1-min.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '';</script>
|
||||
<script src="/mkdocs/js/require.js"></script>
|
||||
<script src="/js/theme.js"></script>
|
||||
<script>var base_url = '/';</script>
|
||||
<script src="//mkdocs/js/require.js"></script>
|
||||
<script src="//js/theme.js"></script>
|
||||
|
||||
<script>
|
||||
var shiftWindow = function() {
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../permissions/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/permissions/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../validators/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/validators/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -541,10 +541,10 @@
|
|||
<h2 id="setting-the-authentication-scheme"><a class="toclink" href="#setting-the-authentication-scheme">Setting the authentication scheme</a></h2>
|
||||
<p>The default authentication schemes may be set globally, using the <code>DEFAULT_AUTHENTICATION_CLASSES</code> setting. For example.</p>
|
||||
<pre><code>REST_FRAMEWORK = {
|
||||
'DEFAULT_AUTHENTICATION_CLASSES': (
|
||||
'DEFAULT_AUTHENTICATION_CLASSES': [
|
||||
'rest_framework.authentication.BasicAuthentication',
|
||||
'rest_framework.authentication.SessionAuthentication',
|
||||
)
|
||||
]
|
||||
}
|
||||
</code></pre>
|
||||
<p>You can also set the authentication scheme on a per-view or per-viewset basis,
|
||||
|
|
@ -555,8 +555,8 @@ from rest_framework.response import Response
|
|||
from rest_framework.views import APIView
|
||||
|
||||
class ExampleView(APIView):
|
||||
authentication_classes = (SessionAuthentication, BasicAuthentication)
|
||||
permission_classes = (IsAuthenticated,)
|
||||
authentication_classes = [SessionAuthentication, BasicAuthentication]
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def get(self, request, format=None):
|
||||
content = {
|
||||
|
|
@ -567,8 +567,8 @@ class ExampleView(APIView):
|
|||
</code></pre>
|
||||
<p>Or, if you're using the <code>@api_view</code> decorator with function based views.</p>
|
||||
<pre><code>@api_view(['GET'])
|
||||
@authentication_classes((SessionAuthentication, BasicAuthentication))
|
||||
@permission_classes((IsAuthenticated,))
|
||||
@authentication_classes([SessionAuthentication, BasicAuthentication])
|
||||
@permission_classes([IsAuthenticated])
|
||||
def example_view(request, format=None):
|
||||
content = {
|
||||
'user': unicode(request.user), # `django.contrib.auth.User` instance.
|
||||
|
|
@ -607,10 +607,10 @@ WSGIPassAuthorization On
|
|||
<h2 id="tokenauthentication"><a class="toclink" href="#tokenauthentication">TokenAuthentication</a></h2>
|
||||
<p>This authentication scheme uses a simple token-based HTTP Authentication scheme. Token authentication is appropriate for client-server setups, such as native desktop and mobile clients.</p>
|
||||
<p>To use the <code>TokenAuthentication</code> scheme you'll need to <a href="#setting-the-authentication-scheme">configure the authentication classes</a> to include <code>TokenAuthentication</code>, and additionally include <code>rest_framework.authtoken</code> in your <code>INSTALLED_APPS</code> setting:</p>
|
||||
<pre><code>INSTALLED_APPS = (
|
||||
<pre><code>INSTALLED_APPS = [
|
||||
...
|
||||
'rest_framework.authtoken'
|
||||
)
|
||||
]
|
||||
</code></pre>
|
||||
<hr />
|
||||
<p><strong>Note:</strong> Make sure to run <code>manage.py migrate</code> after changing your settings. The <code>rest_framework.authtoken</code> app provides Django database migrations.</p>
|
||||
|
|
@ -704,7 +704,7 @@ class CustomAuthToken(ObtainAuthToken):
|
|||
<p><code>your_app/admin.py</code>:</p>
|
||||
<pre><code>from rest_framework.authtoken.admin import TokenAdmin
|
||||
|
||||
TokenAdmin.raw_id_fields = ('user',)
|
||||
TokenAdmin.raw_id_fields = ['user']
|
||||
</code></pre>
|
||||
<h4 id="using-django-managepy-command"><a class="toclink" href="#using-django-managepy-command">Using Django manage.py command</a></h4>
|
||||
<p>Since version 3.6.4 it's possible to generate a user token using the following command:</p>
|
||||
|
|
@ -758,14 +758,14 @@ already exist. To change this and other behaviour, consult the
|
|||
<p><strong>Note:</strong> When your custom authenticator is invoked by the request object's <code>.user</code> or <code>.auth</code> properties, you may see an <code>AttributeError</code> re-raised as a <code>WrappedAttributeError</code>. This is necessary to prevent the original exception from being suppressed by the outer property access. Python will not recognize that the <code>AttributeError</code> orginates from your custom authenticator and will instead assume that the request object does not have a <code>.user</code> or <code>.auth</code> property. These errors should be fixed or otherwise handled by your authenticator.</p>
|
||||
<hr />
|
||||
<h2 id="example"><a class="toclink" href="#example">Example</a></h2>
|
||||
<p>The following example will authenticate any incoming request as the user given by the username in a custom request header named 'X_USERNAME'.</p>
|
||||
<p>The following example will authenticate any incoming request as the user given by the username in a custom request header named 'X-USERNAME'.</p>
|
||||
<pre><code>from django.contrib.auth.models import User
|
||||
from rest_framework import authentication
|
||||
from rest_framework import exceptions
|
||||
|
||||
class ExampleAuthentication(authentication.BaseAuthentication):
|
||||
def authenticate(self, request):
|
||||
username = request.META.get('X_USERNAME')
|
||||
username = request.META.get('HTTP_X_USERNAME')
|
||||
if not username:
|
||||
return None
|
||||
|
||||
|
|
@ -786,15 +786,15 @@ class ExampleAuthentication(authentication.BaseAuthentication):
|
|||
<pre><code>pip install django-oauth-toolkit
|
||||
</code></pre>
|
||||
<p>Add the package to your <code>INSTALLED_APPS</code> and modify your REST framework settings.</p>
|
||||
<pre><code>INSTALLED_APPS = (
|
||||
<pre><code>INSTALLED_APPS = [
|
||||
...
|
||||
'oauth2_provider',
|
||||
)
|
||||
]
|
||||
|
||||
REST_FRAMEWORK = {
|
||||
'DEFAULT_AUTHENTICATION_CLASSES': (
|
||||
'DEFAULT_AUTHENTICATION_CLASSES': [
|
||||
'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
|
||||
)
|
||||
]
|
||||
}
|
||||
</code></pre>
|
||||
<p>For more details see the <a href="https://django-oauth-toolkit.readthedocs.io/en/latest/rest-framework/getting_started.html">Django REST framework - Getting started</a> documentation.</p>
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../throttling/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/throttling/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../permissions/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/permissions/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -426,7 +426,7 @@
|
|||
|
||||
<h1 id="caching"><a class="toclink" href="#caching">Caching</a></h1>
|
||||
<blockquote>
|
||||
<p>A certain woman had a very sharp conciousness but almost no
|
||||
<p>A certain woman had a very sharp consciousness but almost no
|
||||
memory ... She remembered enough to work, and she worked hard.
|
||||
- Lydia Davis</p>
|
||||
</blockquote>
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../metadata/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/metadata/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../versioning/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/versioning/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../status-codes/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/status-codes/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../reverse/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/reverse/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../relations/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/relations/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../serializers/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/serializers/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -759,7 +759,7 @@ explicitly declare the <code>BooleanField</code> on the serializer class, or use
|
|||
<p><strong>Signature:</strong> <code>UUIDField(format='hex_verbose')</code></p>
|
||||
<ul>
|
||||
<li><code>format</code>: Determines the representation format of the uuid value<ul>
|
||||
<li><code>'hex_verbose'</code> - The cannoncical hex representation, including hyphens: <code>"5ce0e9a5-5ffa-654b-cee0-1238041fb31a"</code></li>
|
||||
<li><code>'hex_verbose'</code> - The canonical hex representation, including hyphens: <code>"5ce0e9a5-5ffa-654b-cee0-1238041fb31a"</code></li>
|
||||
<li><code>'hex'</code> - The compact hex representation of the UUID, not including hyphens: <code>"5ce0e9a55ffa654bcee01238041fb31a"</code></li>
|
||||
<li><code>'int'</code> - A 128 bit integer representation of the UUID: <code>"123456789012312313134124512351145145114"</code></li>
|
||||
<li><code>'urn'</code> - RFC 4122 URN representation of the UUID: <code>"urn:uuid:5ce0e9a5-5ffa-654b-cee0-1238041fb31a"</code>
|
||||
|
|
@ -986,7 +986,7 @@ Django's regular <a href="https://docs.djangoproject.com/en/stable/ref/settings/
|
|||
<pre><code>class AccountSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Account
|
||||
fields = ('id', 'account_name', 'has_expired')
|
||||
fields = ['id', 'account_name', 'has_expired']
|
||||
</code></pre>
|
||||
<h2 id="hiddenfield"><a class="toclink" href="#hiddenfield">HiddenField</a></h2>
|
||||
<p>A field class that does not take a value based on user input, but instead takes its value from a default value or callable.</p>
|
||||
|
|
@ -1152,7 +1152,7 @@ to the desired output.</p>
|
|||
<pre><code>>>> instance = DataPoint(label='Example', x_coordinate=1, y_coordinate=2)
|
||||
>>> out_serializer = DataPointSerializer(instance)
|
||||
>>> out_serializer.data
|
||||
ReturnDict([('label', 'testing'), ('coordinates', {'x': 1, 'y': 2})])
|
||||
ReturnDict([('label', 'Example'), ('coordinates', {'x': 1, 'y': 2})])
|
||||
</code></pre>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../pagination/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/pagination/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../throttling/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/throttling/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -453,10 +453,6 @@
|
|||
<a href="#orderingfilter">OrderingFilter</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#djangoobjectpermissionsfilter">DjangoObjectPermissionsFilter</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li class="main">
|
||||
<a href="#custom-generic-filtering">Custom generic filtering</a>
|
||||
|
|
@ -587,7 +583,7 @@ class PurchaseList(generics.ListAPIView):
|
|||
<h2 id="setting-filter-backends"><a class="toclink" href="#setting-filter-backends">Setting filter backends</a></h2>
|
||||
<p>The default filter backends may be set globally, using the <code>DEFAULT_FILTER_BACKENDS</code> setting. For example.</p>
|
||||
<pre><code>REST_FRAMEWORK = {
|
||||
'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',)
|
||||
'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']
|
||||
}
|
||||
</code></pre>
|
||||
<p>You can also set the filter backends on a per-view, or per-viewset basis,
|
||||
|
|
@ -600,7 +596,7 @@ from rest_framework import generics
|
|||
class UserListView(generics.ListAPIView):
|
||||
queryset = User.objects.all()
|
||||
serializer_class = UserSerializer
|
||||
filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)
|
||||
filter_backends = [django_filters.rest_framework.DjangoFilterBackend]
|
||||
</code></pre>
|
||||
<h2 id="filtering-and-object-lookups"><a class="toclink" href="#filtering-and-object-lookups">Filtering and object lookups</a></h2>
|
||||
<p>Note that if a filter backend is configured for a view, then as well as being used to filter list views, it will also be used to filter the querysets used for returning a single object.</p>
|
||||
|
|
@ -625,14 +621,14 @@ class UserListView(generics.ListAPIView):
|
|||
<hr />
|
||||
<h1 id="api-guide"><a class="toclink" href="#api-guide">API Guide</a></h1>
|
||||
<h2 id="djangofilterbackend"><a class="toclink" href="#djangofilterbackend">DjangoFilterBackend</a></h2>
|
||||
<p>The <code>django-filter</code> library includes a <code>DjangoFilterBackend</code> class which
|
||||
<p>The <a href="https://django-filter.readthedocs.io/en/latest/index.html"><code>django-filter</code></a> library includes a <code>DjangoFilterBackend</code> class which
|
||||
supports highly customizable field filtering for REST framework.</p>
|
||||
<p>To use <code>DjangoFilterBackend</code>, first install <code>django-filter</code>. Then add <code>django_filters</code> to Django's <code>INSTALLED_APPS</code></p>
|
||||
<pre><code>pip install django-filter
|
||||
</code></pre>
|
||||
<p>You should now either add the filter backend to your settings:</p>
|
||||
<pre><code>REST_FRAMEWORK = {
|
||||
'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',)
|
||||
'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']
|
||||
}
|
||||
</code></pre>
|
||||
<p>Or add the filter backend to an individual View or ViewSet.</p>
|
||||
|
|
@ -640,14 +636,14 @@ supports highly customizable field filtering for REST framework.</p>
|
|||
|
||||
class UserListView(generics.ListAPIView):
|
||||
...
|
||||
filter_backends = (DjangoFilterBackend,)
|
||||
filter_backends = [DjangoFilterBackend]
|
||||
</code></pre>
|
||||
<p>If all you need is simple equality-based filtering, you can set a <code>filterset_fields</code> attribute on the view, or viewset, listing the set of fields you wish to filter against.</p>
|
||||
<pre><code>class ProductList(generics.ListAPIView):
|
||||
queryset = Product.objects.all()
|
||||
serializer_class = ProductSerializer
|
||||
filter_backends = (DjangoFilterBackend,)
|
||||
filterset_fields = ('category', 'in_stock')
|
||||
filter_backends = [DjangoFilterBackend]
|
||||
filterset_fields = ['category', 'in_stock']
|
||||
</code></pre>
|
||||
<p>This will automatically create a <code>FilterSet</code> class for the given fields, and will allow you to make requests such as:</p>
|
||||
<pre><code>http://example.com/api/products?category=clothing&in_stock=True
|
||||
|
|
@ -665,14 +661,14 @@ It's also recommended that you read the section on <a href="https://django-filte
|
|||
class UserListView(generics.ListAPIView):
|
||||
queryset = User.objects.all()
|
||||
serializer_class = UserSerializer
|
||||
filter_backends = (filters.SearchFilter,)
|
||||
search_fields = ('username', 'email')
|
||||
filter_backends = [filters.SearchFilter]
|
||||
search_fields = ['username', 'email']
|
||||
</code></pre>
|
||||
<p>This will allow the client to filter the items in the list by making queries such as:</p>
|
||||
<pre><code>http://example.com/api/users?search=russell
|
||||
</code></pre>
|
||||
<p>You can also perform a related lookup on a ForeignKey or ManyToManyField with the lookup API double-underscore notation:</p>
|
||||
<pre><code>search_fields = ('username', 'email', 'profile__profession')
|
||||
<pre><code>search_fields = ['username', 'email', 'profile__profession']
|
||||
</code></pre>
|
||||
<p>By default, searches will use case-insensitive partial matches. The search parameter may contain multiple search terms, which should be whitespace and/or comma separated. If multiple search terms are used then objects will be returned in the list only if all the provided terms are matched.</p>
|
||||
<p>The search behavior may be restricted by prepending various characters to the <code>search_fields</code>.</p>
|
||||
|
|
@ -683,7 +679,7 @@ class UserListView(generics.ListAPIView):
|
|||
<li>'$' Regex search.</li>
|
||||
</ul>
|
||||
<p>For example:</p>
|
||||
<pre><code>search_fields = ('=username', '=email')
|
||||
<pre><code>search_fields = ['=username', '=email']
|
||||
</code></pre>
|
||||
<p>By default, the search parameter is named <code>'search</code>', but this may be overridden with the <code>SEARCH_PARAM</code> setting.</p>
|
||||
<p>To dynamically change search fields based on request content, it's possible to subclass the <code>SearchFilter</code> and override the <code>get_search_fields()</code> function. For example, the following subclass will only search on <code>title</code> if the query parameter <code>title_only</code> is in the request:</p>
|
||||
|
|
@ -692,7 +688,7 @@ class UserListView(generics.ListAPIView):
|
|||
class CustomSearchFilter(filters.SearchFilter):
|
||||
def get_search_fields(self, view, request):
|
||||
if request.query_params.get('title_only'):
|
||||
return ('title',)
|
||||
return ['title']
|
||||
return super(CustomSearchFilter, self).get_search_fields(view, request)
|
||||
</code></pre>
|
||||
<p>For more details, see the <a href="https://docs.djangoproject.com/en/stable/ref/contrib/admin/#django.contrib.admin.ModelAdmin.search_fields">Django documentation</a>.</p>
|
||||
|
|
@ -715,8 +711,8 @@ class CustomSearchFilter(filters.SearchFilter):
|
|||
<pre><code>class UserListView(generics.ListAPIView):
|
||||
queryset = User.objects.all()
|
||||
serializer_class = UserSerializer
|
||||
filter_backends = (filters.OrderingFilter,)
|
||||
ordering_fields = ('username', 'email')
|
||||
filter_backends = [filters.OrderingFilter]
|
||||
ordering_fields = ['username', 'email']
|
||||
</code></pre>
|
||||
<p>This helps prevent unexpected data leakage, such as allowing users to order against a password hash field or other sensitive data.</p>
|
||||
<p>If you <em>don't</em> specify an <code>ordering_fields</code> attribute on the view, the filter class will default to allowing the user to filter on any readable fields on the serializer specified by the <code>serializer_class</code> attribute.</p>
|
||||
|
|
@ -724,7 +720,7 @@ class CustomSearchFilter(filters.SearchFilter):
|
|||
<pre><code>class BookingsListView(generics.ListAPIView):
|
||||
queryset = Booking.objects.all()
|
||||
serializer_class = BookingSerializer
|
||||
filter_backends = (filters.OrderingFilter,)
|
||||
filter_backends = [filters.OrderingFilter]
|
||||
ordering_fields = '__all__'
|
||||
</code></pre>
|
||||
<h3 id="specifying-a-default-ordering"><a class="toclink" href="#specifying-a-default-ordering">Specifying a default ordering</a></h3>
|
||||
|
|
@ -733,48 +729,12 @@ class CustomSearchFilter(filters.SearchFilter):
|
|||
<pre><code>class UserListView(generics.ListAPIView):
|
||||
queryset = User.objects.all()
|
||||
serializer_class = UserSerializer
|
||||
filter_backends = (filters.OrderingFilter,)
|
||||
ordering_fields = ('username', 'email')
|
||||
ordering = ('username',)
|
||||
filter_backends = [filters.OrderingFilter]
|
||||
ordering_fields = ['username', 'email']
|
||||
ordering = ['username']
|
||||
</code></pre>
|
||||
<p>The <code>ordering</code> attribute may be either a string or a list/tuple of strings.</p>
|
||||
<hr />
|
||||
<h2 id="djangoobjectpermissionsfilter"><a class="toclink" href="#djangoobjectpermissionsfilter">DjangoObjectPermissionsFilter</a></h2>
|
||||
<p>The <code>DjangoObjectPermissionsFilter</code> is intended to be used together with the <a href="https://django-guardian.readthedocs.io/"><code>django-guardian</code></a> package, with custom <code>'view'</code> permissions added. The filter will ensure that querysets only returns objects for which the user has the appropriate view permission.</p>
|
||||
<hr />
|
||||
<p><strong>Note:</strong> This filter has been deprecated as of version 3.9 and moved to the 3rd-party <a href="https://github.com/rpkilby/django-rest-framework-guardian"><code>djangorestframework-guardian</code> package</a>.</p>
|
||||
<hr />
|
||||
<p>If you're using <code>DjangoObjectPermissionsFilter</code>, you'll probably also want to add an appropriate object permissions class, to ensure that users can only operate on instances if they have the appropriate object permissions. The easiest way to do this is to subclass <code>DjangoObjectPermissions</code> and add <code>'view'</code> permissions to the <code>perms_map</code> attribute.</p>
|
||||
<p>A complete example using both <code>DjangoObjectPermissionsFilter</code> and <code>DjangoObjectPermissions</code> might look something like this.</p>
|
||||
<p><strong>permissions.py</strong>:</p>
|
||||
<pre><code>class CustomObjectPermissions(permissions.DjangoObjectPermissions):
|
||||
"""
|
||||
Similar to `DjangoObjectPermissions`, but adding 'view' permissions.
|
||||
"""
|
||||
perms_map = {
|
||||
'GET': ['%(app_label)s.view_%(model_name)s'],
|
||||
'OPTIONS': ['%(app_label)s.view_%(model_name)s'],
|
||||
'HEAD': ['%(app_label)s.view_%(model_name)s'],
|
||||
'POST': ['%(app_label)s.add_%(model_name)s'],
|
||||
'PUT': ['%(app_label)s.change_%(model_name)s'],
|
||||
'PATCH': ['%(app_label)s.change_%(model_name)s'],
|
||||
'DELETE': ['%(app_label)s.delete_%(model_name)s'],
|
||||
}
|
||||
</code></pre>
|
||||
<p><strong>views.py</strong>:</p>
|
||||
<pre><code>class EventViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
Viewset that only lists events if user has 'view' permissions, and only
|
||||
allows operations on individual events if user has appropriate 'view', 'add',
|
||||
'change' or 'delete' permissions.
|
||||
"""
|
||||
queryset = Event.objects.all()
|
||||
serializer_class = EventSerializer
|
||||
filter_backends = (filters.DjangoObjectPermissionsFilter,)
|
||||
permission_classes = (myapp.permissions.CustomObjectPermissions,)
|
||||
</code></pre>
|
||||
<p>For more information on adding <code>'view'</code> permissions for models, see the <a href="https://django-guardian.readthedocs.io/en/latest/userguide/assign.html">relevant section</a> of the <code>django-guardian</code> documentation, and <a href="https://blog.nyaruka.com/adding-a-view-permission-to-django-models">this blogpost</a>.</p>
|
||||
<hr />
|
||||
<h1 id="custom-generic-filtering"><a class="toclink" href="#custom-generic-filtering">Custom generic filtering</a></h1>
|
||||
<p>You can also provide your own generic filtering backend, or write an installable app for other developers to use.</p>
|
||||
<p>To do so override <code>BaseFilterBackend</code>, and override the <code>.filter_queryset(self, request, queryset, view)</code> method. The method should return a new, filtered queryset.</p>
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../reverse/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/reverse/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../schemas/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/schemas/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -468,7 +468,7 @@ urlpatterns = [
|
|||
urlpatterns = format_suffix_patterns(urlpatterns, allowed=['json', 'html'])
|
||||
</code></pre>
|
||||
<p>When using <code>format_suffix_patterns</code>, you must make sure to add the <code>'format'</code> keyword argument to the corresponding views. For example:</p>
|
||||
<pre><code>@api_view(('GET', 'POST'))
|
||||
<pre><code>@api_view(['GET', 'POST'])
|
||||
def comment_list(request, format=None):
|
||||
# do stuff...
|
||||
</code></pre>
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../viewsets/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/viewsets/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../views/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/views/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -564,13 +564,13 @@ from rest_framework.permissions import IsAdminUser
|
|||
class UserList(generics.ListCreateAPIView):
|
||||
queryset = User.objects.all()
|
||||
serializer_class = UserSerializer
|
||||
permission_classes = (IsAdminUser,)
|
||||
permission_classes = [IsAdminUser]
|
||||
</code></pre>
|
||||
<p>For more complex cases you might also want to override various methods on the view class. For example.</p>
|
||||
<pre><code>class UserList(generics.ListCreateAPIView):
|
||||
queryset = User.objects.all()
|
||||
serializer_class = UserSerializer
|
||||
permission_classes = (IsAdminUser,)
|
||||
permission_classes = [IsAdminUser]
|
||||
|
||||
def list(self, request):
|
||||
# Note the use of `get_queryset()` instead of `self.queryset`
|
||||
|
|
@ -634,12 +634,12 @@ class UserList(generics.ListCreateAPIView):
|
|||
<p>Given a queryset, filter it with whichever filter backends are in use, returning a new queryset.</p>
|
||||
<p>For example:</p>
|
||||
<pre><code>def filter_queryset(self, queryset):
|
||||
filter_backends = (CategoryFilter,)
|
||||
filter_backends = [CategoryFilter]
|
||||
|
||||
if 'geo_route' in self.request.query_params:
|
||||
filter_backends = (GeoRouteFilter, CategoryFilter)
|
||||
filter_backends = [GeoRouteFilter, CategoryFilter]
|
||||
elif 'geo_point' in self.request.query_params:
|
||||
filter_backends = (GeoPointFilter, CategoryFilter)
|
||||
filter_backends = [GeoPointFilter, CategoryFilter]
|
||||
|
||||
for backend in list(filter_backends):
|
||||
queryset = backend().filter_queryset(self.request, queryset, view=self)
|
||||
|
|
@ -775,7 +775,7 @@ class UserList(generics.ListCreateAPIView):
|
|||
<pre><code>class RetrieveUserView(MultipleFieldLookupMixin, generics.RetrieveAPIView):
|
||||
queryset = User.objects.all()
|
||||
serializer_class = UserSerializer
|
||||
lookup_fields = ('account', 'username')
|
||||
lookup_fields = ['account', 'username']
|
||||
</code></pre>
|
||||
<p>Using custom mixins is a good option if you have custom behavior that needs to be used.</p>
|
||||
<h2 id="creating-custom-base-classes"><a class="toclink" href="#creating-custom-base-classes">Creating custom base classes</a></h2>
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../schemas/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/schemas/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../content-negotiation/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/content-negotiation/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../versioning/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/versioning/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../filtering/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/filtering/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -492,8 +492,56 @@
|
|||
|
||||
|
||||
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/pagination.py">
|
||||
<span class="label label-info">pagination.py</span>
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/p">
|
||||
<span class="label label-info">p</span>
|
||||
</a>
|
||||
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/a">
|
||||
<span class="label label-info">a</span>
|
||||
</a>
|
||||
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/g">
|
||||
<span class="label label-info">g</span>
|
||||
</a>
|
||||
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/i">
|
||||
<span class="label label-info">i</span>
|
||||
</a>
|
||||
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/n">
|
||||
<span class="label label-info">n</span>
|
||||
</a>
|
||||
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/a">
|
||||
<span class="label label-info">a</span>
|
||||
</a>
|
||||
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/t">
|
||||
<span class="label label-info">t</span>
|
||||
</a>
|
||||
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/i">
|
||||
<span class="label label-info">i</span>
|
||||
</a>
|
||||
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/o">
|
||||
<span class="label label-info">o</span>
|
||||
</a>
|
||||
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/n">
|
||||
<span class="label label-info">n</span>
|
||||
</a>
|
||||
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/.">
|
||||
<span class="label label-info">.</span>
|
||||
</a>
|
||||
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/p">
|
||||
<span class="label label-info">p</span>
|
||||
</a>
|
||||
|
||||
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/y">
|
||||
<span class="label label-info">y</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
|
@ -696,15 +744,14 @@ class StandardResultsSetPagination(PageNumberPagination):
|
|||
}
|
||||
</code></pre>
|
||||
<p>API responses for list endpoints will now include a <code>Link</code> header, instead of including the pagination links as part of the body of the response, for example:</p>
|
||||
<p><img alt="Link Header" src="../../img/link-header-pagination.png" /></p>
|
||||
<p><em>A custom pagination style, using the 'Link' header'</em></p>
|
||||
<h2 id="pagination-schemas"><a class="toclink" href="#pagination-schemas">Pagination & schemas</a></h2>
|
||||
<p>You can also make the pagination controls available to the schema autogeneration
|
||||
that REST framework provides, by implementing a <code>get_schema_fields()</code> method. This method should have the following signature:</p>
|
||||
<p><code>get_schema_fields(self, view)</code></p>
|
||||
<p>The method should return a list of <code>coreapi.Field</code> instances.</p>
|
||||
<hr />
|
||||
<p><img alt="Link Header" src="../../img/link-header-pagination.png" /></p>
|
||||
<p><em>A custom pagination style, using the 'Link' header'</em></p>
|
||||
<hr />
|
||||
<h1 id="html-pagination-controls"><a class="toclink" href="#html-pagination-controls">HTML pagination controls</a></h1>
|
||||
<p>By default using the pagination classes will cause HTML pagination controls to be displayed in the browsable API. There are two built-in display styles. The <code>PageNumberPagination</code> and <code>LimitOffsetPagination</code> classes display a list of page numbers with previous and next controls. The <code>CursorPagination</code> class displays a simpler style that only displays a previous and next control.</p>
|
||||
<h2 id="customizing-the-controls"><a class="toclink" href="#customizing-the-controls">Customizing the controls</a></h2>
|
||||
|
|
@ -726,7 +773,7 @@ that REST framework provides, by implementing a <code>get_schema_fields()</code>
|
|||
<h2 id="drf-proxy-pagination"><a class="toclink" href="#drf-proxy-pagination">drf-proxy-pagination</a></h2>
|
||||
<p>The <a href="https://github.com/tuffnatty/drf-proxy-pagination"><code>drf-proxy-pagination</code> package</a> includes a <code>ProxyPagination</code> class which allows to choose pagination class with a query parameter.</p>
|
||||
<h2 id="link-header-pagination"><a class="toclink" href="#link-header-pagination">link-header-pagination</a></h2>
|
||||
<p>The <a href="https://github.com/tbeadle/django-rest-framework-link-header-pagination"><code>django-rest-framework-link-header-pagination</code> package</a> includes a <code>LinkHeaderPagination</code> class which provides pagination via an HTTP <code>Link</code> header as described in <a href="../github-link-pagination">Github's developer documentation</a>.</p>
|
||||
<p>The <a href="https://github.com/tbeadle/django-rest-framework-link-header-pagination"><code>django-rest-framework-link-header-pagination</code> package</a> includes a <code>LinkHeaderPagination</code> class which provides pagination via an HTTP <code>Link</code> header as described in <a href="github-link-pagination">Github's developer documentation</a>.</p>
|
||||
|
||||
|
||||
</div> <!--/span-->
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../renderers/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/renderers/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../routers/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/routers/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -518,9 +518,9 @@ sending more complex data than simple forms</p>
|
|||
<h2 id="setting-the-parsers"><a class="toclink" href="#setting-the-parsers">Setting the parsers</a></h2>
|
||||
<p>The default set of parsers may be set globally, using the <code>DEFAULT_PARSER_CLASSES</code> setting. For example, the following settings would allow only requests with <code>JSON</code> content, instead of the default of JSON or form data.</p>
|
||||
<pre><code>REST_FRAMEWORK = {
|
||||
'DEFAULT_PARSER_CLASSES': (
|
||||
'DEFAULT_PARSER_CLASSES': [
|
||||
'rest_framework.parsers.JSONParser',
|
||||
)
|
||||
]
|
||||
}
|
||||
</code></pre>
|
||||
<p>You can also set the parsers used for an individual view, or viewset,
|
||||
|
|
@ -533,7 +533,7 @@ class ExampleView(APIView):
|
|||
"""
|
||||
A view that can accept POST requests with JSON content.
|
||||
"""
|
||||
parser_classes = (JSONParser,)
|
||||
parser_classes = [JSONParser]
|
||||
|
||||
def post(self, request, format=None):
|
||||
return Response({'received data': request.data})
|
||||
|
|
@ -544,7 +544,7 @@ from rest_framework.decorators import parser_classes
|
|||
from rest_framework.parsers import JSONParser
|
||||
|
||||
@api_view(['POST'])
|
||||
@parser_classes((JSONParser,))
|
||||
@parser_classes([JSONParser])
|
||||
def example_view(request, format=None):
|
||||
"""
|
||||
A view that can accept POST requests with JSON content.
|
||||
|
|
@ -578,7 +578,7 @@ def example_view(request, format=None):
|
|||
<h5 id="basic-usage-example"><a class="toclink" href="#basic-usage-example">Basic usage example:</a></h5>
|
||||
<pre><code># views.py
|
||||
class FileUploadView(views.APIView):
|
||||
parser_classes = (FileUploadParser,)
|
||||
parser_classes = [FileUploadParser]
|
||||
|
||||
def put(self, request, filename, format=None):
|
||||
file_obj = request.data['file']
|
||||
|
|
@ -631,12 +631,12 @@ urlpatterns = [
|
|||
</code></pre>
|
||||
<p>Modify your REST framework settings.</p>
|
||||
<pre><code>REST_FRAMEWORK = {
|
||||
'DEFAULT_PARSER_CLASSES': (
|
||||
'DEFAULT_PARSER_CLASSES': [
|
||||
'rest_framework_yaml.parsers.YAMLParser',
|
||||
),
|
||||
'DEFAULT_RENDERER_CLASSES': (
|
||||
],
|
||||
'DEFAULT_RENDERER_CLASSES': [
|
||||
'rest_framework_yaml.renderers.YAMLRenderer',
|
||||
),
|
||||
],
|
||||
}
|
||||
</code></pre>
|
||||
<h2 id="xml"><a class="toclink" href="#xml">XML</a></h2>
|
||||
|
|
@ -647,12 +647,12 @@ urlpatterns = [
|
|||
</code></pre>
|
||||
<p>Modify your REST framework settings.</p>
|
||||
<pre><code>REST_FRAMEWORK = {
|
||||
'DEFAULT_PARSER_CLASSES': (
|
||||
'DEFAULT_PARSER_CLASSES': [
|
||||
'rest_framework_xml.parsers.XMLParser',
|
||||
),
|
||||
'DEFAULT_RENDERER_CLASSES': (
|
||||
],
|
||||
'DEFAULT_RENDERER_CLASSES': [
|
||||
'rest_framework_xml.renderers.XMLRenderer',
|
||||
),
|
||||
],
|
||||
}
|
||||
</code></pre>
|
||||
<h2 id="messagepack"><a class="toclink" href="#messagepack">MessagePack</a></h2>
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../caching/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/caching/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../authentication/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/authentication/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -467,6 +467,10 @@
|
|||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<a href="#drf-access-policy">DRF - Access Policy</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#composed-permissions">Composed Permissions</a>
|
||||
</li>
|
||||
|
|
@ -560,15 +564,15 @@ permissions</em></a> section (below).</p>
|
|||
<h2 id="setting-the-permission-policy"><a class="toclink" href="#setting-the-permission-policy">Setting the permission policy</a></h2>
|
||||
<p>The default permission policy may be set globally, using the <code>DEFAULT_PERMISSION_CLASSES</code> setting. For example.</p>
|
||||
<pre><code>REST_FRAMEWORK = {
|
||||
'DEFAULT_PERMISSION_CLASSES': (
|
||||
'DEFAULT_PERMISSION_CLASSES': [
|
||||
'rest_framework.permissions.IsAuthenticated',
|
||||
)
|
||||
]
|
||||
}
|
||||
</code></pre>
|
||||
<p>If not specified, this setting defaults to allowing unrestricted access:</p>
|
||||
<pre><code>'DEFAULT_PERMISSION_CLASSES': (
|
||||
<pre><code>'DEFAULT_PERMISSION_CLASSES': [
|
||||
'rest_framework.permissions.AllowAny',
|
||||
)
|
||||
]
|
||||
</code></pre>
|
||||
<p>You can also set the authentication policy on a per-view, or per-viewset basis,
|
||||
using the <code>APIView</code> class-based views.</p>
|
||||
|
|
@ -577,7 +581,7 @@ from rest_framework.response import Response
|
|||
from rest_framework.views import APIView
|
||||
|
||||
class ExampleView(APIView):
|
||||
permission_classes = (IsAuthenticated,)
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def get(self, request, format=None):
|
||||
content = {
|
||||
|
|
@ -591,7 +595,7 @@ from rest_framework.permissions import IsAuthenticated
|
|||
from rest_framework.response import Response
|
||||
|
||||
@api_view(['GET'])
|
||||
@permission_classes((IsAuthenticated, ))
|
||||
@permission_classes([IsAuthenticated])
|
||||
def example_view(request, format=None):
|
||||
content = {
|
||||
'status': 'request was permitted'
|
||||
|
|
@ -609,7 +613,7 @@ class ReadOnly(BasePermission):
|
|||
return request.method in SAFE_METHODS
|
||||
|
||||
class ExampleView(APIView):
|
||||
permission_classes = (IsAuthenticated|ReadOnly,)
|
||||
permission_classes = [IsAuthenticated|ReadOnly]
|
||||
|
||||
def get(self, request, format=None):
|
||||
content = {
|
||||
|
|
@ -720,6 +724,8 @@ class BlacklistPermission(permissions.BasePermission):
|
|||
<hr />
|
||||
<h1 id="third-party-packages"><a class="toclink" href="#third-party-packages">Third party packages</a></h1>
|
||||
<p>The following third party packages are also available.</p>
|
||||
<h2 id="drf-access-policy"><a class="toclink" href="#drf-access-policy">DRF - Access Policy</a></h2>
|
||||
<p>The <a href="https://github.com/rsinger86/drf-access-policy">Django REST - Access Policy</a> package provides a way to define complex access rules in declaritive policy classes that are attached to view sets or function-based views. The policies are defined in JSON in a format similar to AWS' Identity & Access Management policies. </p>
|
||||
<h2 id="composed-permissions"><a class="toclink" href="#composed-permissions">Composed Permissions</a></h2>
|
||||
<p>The <a href="https://github.com/niwibe/djangorestframework-composed-permissions">Composed Permissions</a> package provides a simple way to define complex and multi-depth (with logic operators) permission objects, using small and reusable components.</p>
|
||||
<h2 id="rest-condition"><a class="toclink" href="#rest-condition">REST Condition</a></h2>
|
||||
|
|
@ -729,7 +735,7 @@ class BlacklistPermission(permissions.BasePermission):
|
|||
<h2 id="django-rest-framework-roles"><a class="toclink" href="#django-rest-framework-roles">Django Rest Framework Roles</a></h2>
|
||||
<p>The <a href="https://github.com/computer-lab/django-rest-framework-roles">Django Rest Framework Roles</a> package makes it easier to parameterize your API over multiple types of users.</p>
|
||||
<h2 id="django-rest-framework-api-key"><a class="toclink" href="#django-rest-framework-api-key">Django REST Framework API Key</a></h2>
|
||||
<p>The <a href="https://github.com/florimondmanca/djangorestframework-api-key">Django REST Framework API Key</a> package provides the ability to authorize clients based on customizable API key headers. This package is targeted at situations in which regular user-based authentication (e.g. <code>TokenAuthentication</code>) is not suitable, e.g. allowing non-human clients to safely use your API. API keys are generated and validated through cryptographic methods and can be created and revoked from the Django admin interface at anytime.</p>
|
||||
<p>The <a href="https://florimondmanca.github.io/djangorestframework-api-key/">Django REST Framework API Key</a> package provides permissions classes, models and helpers to add API key authorization to your API. It can be used to authorize internal or third-party backends and services (i.e. <em>machines</em>) which do not have a user account. API keys are stored securely using Django's password hashing infrastructure, and they can be viewed, edited and revoked at anytime in the Django admin.</p>
|
||||
<h2 id="django-rest-framework-role-filters"><a class="toclink" href="#django-rest-framework-role-filters">Django Rest Framework Role Filters</a></h2>
|
||||
<p>The <a href="https://github.com/allisson/django-rest-framework-role-filters">Django Rest Framework Role Filters</a> package provides simple filtering over multiple types of roles.</p>
|
||||
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../validators/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/validators/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../fields/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/fields/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -567,7 +567,7 @@ class Track(models.Model):
|
|||
duration = models.IntegerField()
|
||||
|
||||
class Meta:
|
||||
unique_together = ('album', 'order')
|
||||
unique_together = ['album', 'order']
|
||||
ordering = ['order']
|
||||
|
||||
def __str__(self):
|
||||
|
|
@ -581,7 +581,7 @@ class Track(models.Model):
|
|||
|
||||
class Meta:
|
||||
model = Album
|
||||
fields = ('album_name', 'artist', 'tracks')
|
||||
fields = ['album_name', 'artist', 'tracks']
|
||||
</code></pre>
|
||||
<p>Would serialize to the following representation.</p>
|
||||
<pre><code>{
|
||||
|
|
@ -608,7 +608,7 @@ class Track(models.Model):
|
|||
|
||||
class Meta:
|
||||
model = Album
|
||||
fields = ('album_name', 'artist', 'tracks')
|
||||
fields = ['album_name', 'artist', 'tracks']
|
||||
</code></pre>
|
||||
<p>Would serialize to a representation like this:</p>
|
||||
<pre><code>{
|
||||
|
|
@ -642,7 +642,7 @@ class Track(models.Model):
|
|||
|
||||
class Meta:
|
||||
model = Album
|
||||
fields = ('album_name', 'artist', 'tracks')
|
||||
fields = ['album_name', 'artist', 'tracks']
|
||||
</code></pre>
|
||||
<p>Would serialize to a representation like this:</p>
|
||||
<pre><code>{
|
||||
|
|
@ -684,7 +684,7 @@ class Track(models.Model):
|
|||
|
||||
class Meta:
|
||||
model = Album
|
||||
fields = ('album_name', 'artist', 'tracks')
|
||||
fields = ['album_name', 'artist', 'tracks']
|
||||
</code></pre>
|
||||
<p>Would serialize to a representation like this:</p>
|
||||
<pre><code>{
|
||||
|
|
@ -714,7 +714,7 @@ class Track(models.Model):
|
|||
|
||||
class Meta:
|
||||
model = Album
|
||||
fields = ('album_name', 'artist', 'track_listing')
|
||||
fields = ['album_name', 'artist', 'track_listing']
|
||||
</code></pre>
|
||||
<p>Would serialize to a representation like this:</p>
|
||||
<pre><code>{
|
||||
|
|
@ -740,14 +740,14 @@ class Track(models.Model):
|
|||
<pre><code>class TrackSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Track
|
||||
fields = ('order', 'title', 'duration')
|
||||
fields = ['order', 'title', 'duration']
|
||||
|
||||
class AlbumSerializer(serializers.ModelSerializer):
|
||||
tracks = TrackSerializer(many=True, read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Album
|
||||
fields = ('album_name', 'artist', 'tracks')
|
||||
fields = ['album_name', 'artist', 'tracks']
|
||||
</code></pre>
|
||||
<p>Would serialize to a nested representation like this:</p>
|
||||
<pre><code>>>> album = Album.objects.create(album_name="The Grey Album", artist='Danger Mouse')
|
||||
|
|
@ -775,14 +775,14 @@ class AlbumSerializer(serializers.ModelSerializer):
|
|||
<pre><code>class TrackSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Track
|
||||
fields = ('order', 'title', 'duration')
|
||||
fields = ['order', 'title', 'duration']
|
||||
|
||||
class AlbumSerializer(serializers.ModelSerializer):
|
||||
tracks = TrackSerializer(many=True)
|
||||
|
||||
class Meta:
|
||||
model = Album
|
||||
fields = ('album_name', 'artist', 'tracks')
|
||||
fields = ['album_name', 'artist', 'tracks']
|
||||
|
||||
def create(self, validated_data):
|
||||
tracks_data = validated_data.pop('tracks')
|
||||
|
|
@ -828,7 +828,7 @@ class AlbumSerializer(serializers.ModelSerializer):
|
|||
|
||||
class Meta:
|
||||
model = Album
|
||||
fields = ('album_name', 'artist', 'tracks')
|
||||
fields = ['album_name', 'artist', 'tracks']
|
||||
</code></pre>
|
||||
<p>This custom field would then serialize to the following representation.</p>
|
||||
<pre><code>{
|
||||
|
|
@ -918,7 +918,7 @@ class CustomerHyperlink(serializers.HyperlinkedRelatedField):
|
|||
<p>Note that reverse relationships are not automatically included by the <code>ModelSerializer</code> and <code>HyperlinkedModelSerializer</code> classes. To include a reverse relationship, you must explicitly add it to the fields list. For example:</p>
|
||||
<pre><code>class AlbumSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
fields = ('tracks', ...)
|
||||
fields = ['tracks', ...]
|
||||
</code></pre>
|
||||
<p>You'll normally want to ensure that you've set an appropriate <code>related_name</code> argument on the relationship, that you can use as the field name. For example:</p>
|
||||
<pre><code>class Track(models.Model):
|
||||
|
|
@ -928,7 +928,7 @@ class CustomerHyperlink(serializers.HyperlinkedRelatedField):
|
|||
<p>If you have not set a related name for the reverse relationship, you'll need to use the automatically generated related name in the <code>fields</code> argument. For example:</p>
|
||||
<pre><code>class AlbumSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
fields = ('track_set', ...)
|
||||
fields = ['track_set', ...]
|
||||
</code></pre>
|
||||
<p>See the Django documentation on <a href="https://docs.djangoproject.com/en/stable/topics/db/queries/#following-relationships-backward">reverse relationships</a> for more details.</p>
|
||||
<h2 id="generic-relationships"><a class="toclink" href="#generic-relationships">Generic relationships</a></h2>
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../serializers/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/serializers/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../parsers/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/parsers/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../requests/">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -579,10 +579,10 @@
|
|||
<h2 id="setting-the-renderers"><a class="toclink" href="#setting-the-renderers">Setting the renderers</a></h2>
|
||||
<p>The default set of renderers may be set globally, using the <code>DEFAULT_RENDERER_CLASSES</code> setting. For example, the following settings would use <code>JSON</code> as the main media type and also include the self describing API.</p>
|
||||
<pre><code>REST_FRAMEWORK = {
|
||||
'DEFAULT_RENDERER_CLASSES': (
|
||||
'DEFAULT_RENDERER_CLASSES': [
|
||||
'rest_framework.renderers.JSONRenderer',
|
||||
'rest_framework.renderers.BrowsableAPIRenderer',
|
||||
)
|
||||
]
|
||||
}
|
||||
</code></pre>
|
||||
<p>You can also set the renderers used for an individual view, or viewset,
|
||||
|
|
@ -596,7 +596,7 @@ class UserCountView(APIView):
|
|||
"""
|
||||
A view that returns the count of active users in JSON.
|
||||
"""
|
||||
renderer_classes = (JSONRenderer, )
|
||||
renderer_classes = [JSONRenderer]
|
||||
|
||||
def get(self, request, format=None):
|
||||
user_count = User.objects.filter(active=True).count()
|
||||
|
|
@ -605,7 +605,7 @@ class UserCountView(APIView):
|
|||
</code></pre>
|
||||
<p>Or, if you're using the <code>@api_view</code> decorator with function based views.</p>
|
||||
<pre><code>@api_view(['GET'])
|
||||
@renderer_classes((JSONRenderer,))
|
||||
@renderer_classes([JSONRenderer])
|
||||
def user_count_view(request, format=None):
|
||||
"""
|
||||
A view that returns the count of active users in JSON.
|
||||
|
|
@ -651,7 +651,7 @@ Unlike other renderers, the data passed to the <code>Response</code> does not ne
|
|||
A view that returns a templated HTML representation of a given user.
|
||||
"""
|
||||
queryset = User.objects.all()
|
||||
renderer_classes = (TemplateHTMLRenderer,)
|
||||
renderer_classes = [TemplateHTMLRenderer]
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
self.object = self.get_object()
|
||||
|
|
@ -667,8 +667,8 @@ Unlike other renderers, the data passed to the <code>Response</code> does not ne
|
|||
<h2 id="statichtmlrenderer"><a class="toclink" href="#statichtmlrenderer">StaticHTMLRenderer</a></h2>
|
||||
<p>A simple renderer that simply returns pre-rendered HTML. Unlike other renderers, the data passed to the response object should be a string representing the content to be returned.</p>
|
||||
<p>An example of a view that uses <code>StaticHTMLRenderer</code>:</p>
|
||||
<pre><code>@api_view(('GET',))
|
||||
@renderer_classes((StaticHTMLRenderer,))
|
||||
<pre><code>@api_view(['GET'])
|
||||
@renderer_classes([StaticHTMLRenderer])
|
||||
def simple_html_view(request):
|
||||
data = '<html><body><h1>Hello, world</h1></body></html>'
|
||||
return Response(data)
|
||||
|
|
@ -789,8 +789,8 @@ class PlainTextRenderer(renderers.BaseRenderer):
|
|||
<h2 id="varying-behaviour-by-media-type"><a class="toclink" href="#varying-behaviour-by-media-type">Varying behaviour by media type</a></h2>
|
||||
<p>In some cases you might want your view to use different serialization styles depending on the accepted media type. If you need to do this you can access <code>request.accepted_renderer</code> to determine the negotiated renderer that will be used for the response.</p>
|
||||
<p>For example:</p>
|
||||
<pre><code>@api_view(('GET',))
|
||||
@renderer_classes((TemplateHTMLRenderer, JSONRenderer))
|
||||
<pre><code>@api_view(['GET'])
|
||||
@renderer_classes([TemplateHTMLRenderer, JSONRenderer])
|
||||
def list_users(request):
|
||||
"""
|
||||
A view that can return JSON or HTML representations
|
||||
|
|
@ -842,12 +842,12 @@ In this case you can underspecify the media types it should respond to, by using
|
|||
</code></pre>
|
||||
<p>Modify your REST framework settings.</p>
|
||||
<pre><code>REST_FRAMEWORK = {
|
||||
'DEFAULT_PARSER_CLASSES': (
|
||||
'DEFAULT_PARSER_CLASSES': [
|
||||
'rest_framework_yaml.parsers.YAMLParser',
|
||||
),
|
||||
'DEFAULT_RENDERER_CLASSES': (
|
||||
],
|
||||
'DEFAULT_RENDERER_CLASSES': [
|
||||
'rest_framework_yaml.renderers.YAMLRenderer',
|
||||
),
|
||||
],
|
||||
}
|
||||
</code></pre>
|
||||
<h2 id="xml"><a class="toclink" href="#xml">XML</a></h2>
|
||||
|
|
@ -858,12 +858,12 @@ In this case you can underspecify the media types it should respond to, by using
|
|||
</code></pre>
|
||||
<p>Modify your REST framework settings.</p>
|
||||
<pre><code>REST_FRAMEWORK = {
|
||||
'DEFAULT_PARSER_CLASSES': (
|
||||
'DEFAULT_PARSER_CLASSES': [
|
||||
'rest_framework_xml.parsers.XMLParser',
|
||||
),
|
||||
'DEFAULT_RENDERER_CLASSES': (
|
||||
],
|
||||
'DEFAULT_RENDERER_CLASSES': [
|
||||
'rest_framework_xml.renderers.XMLRenderer',
|
||||
),
|
||||
],
|
||||
}
|
||||
</code></pre>
|
||||
<h2 id="jsonp"><a class="toclink" href="#jsonp">JSONP</a></h2>
|
||||
|
|
@ -878,9 +878,9 @@ In this case you can underspecify the media types it should respond to, by using
|
|||
</code></pre>
|
||||
<p>Modify your REST framework settings.</p>
|
||||
<pre><code>REST_FRAMEWORK = {
|
||||
'DEFAULT_RENDERER_CLASSES': (
|
||||
'DEFAULT_RENDERER_CLASSES': [
|
||||
'rest_framework_jsonp.renderers.JSONPRenderer',
|
||||
),
|
||||
],
|
||||
}
|
||||
</code></pre>
|
||||
<h2 id="messagepack"><a class="toclink" href="#messagepack">MessagePack</a></h2>
|
||||
|
|
@ -895,11 +895,11 @@ In this case you can underspecify the media types it should respond to, by using
|
|||
<pre><code>REST_FRAMEWORK = {
|
||||
...
|
||||
|
||||
'DEFAULT_RENDERER_CLASSES': (
|
||||
'DEFAULT_RENDERER_CLASSES': [
|
||||
'rest_framework.renderers.JSONRenderer',
|
||||
'rest_framework.renderers.BrowsableAPIRenderer',
|
||||
'drf_renderer_xlsx.renderers.XLSXRenderer',
|
||||
),
|
||||
],
|
||||
}
|
||||
</code></pre>
|
||||
<p>To avoid having a file streamed without a filename (which the browser will often default to the filename "download", with no extension), we need to use a mixin to override the <code>Content-Disposition</code> header. If no filename is provided, it will default to <code>export.xlsx</code>. For example:</p>
|
||||
|
|
@ -913,7 +913,7 @@ from .serializers import MyExampleSerializer
|
|||
class MyExampleViewSet(XLSXFileMixin, ReadOnlyModelViewSet):
|
||||
queryset = MyExampleModel.objects.all()
|
||||
serializer_class = MyExampleSerializer
|
||||
renderer_classes = (XLSXRenderer,)
|
||||
renderer_classes = [XLSXRenderer]
|
||||
filename = 'my_export.xlsx'
|
||||
</code></pre>
|
||||
<h2 id="csv"><a class="toclink" href="#csv">CSV</a></h2>
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../responses/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/responses/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../../tutorial/7-schemas-and-client-libraries/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="tutorial/6-viewsets-and-routers/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -124,115 +120,115 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li class="active" >
|
||||
<a href="./">Requests</a>
|
||||
<a href="api-guide/requests/">Requests</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../responses/">Responses</a>
|
||||
<a href="api-guide/responses/">Responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../views/">Views</a>
|
||||
<a href="api-guide/views/">Views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../generic-views/">Generic views</a>
|
||||
<a href="api-guide/generic-views/">Generic views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../viewsets/">Viewsets</a>
|
||||
<a href="api-guide/viewsets/">Viewsets</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../routers/">Routers</a>
|
||||
<a href="api-guide/routers/">Routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../parsers/">Parsers</a>
|
||||
<a href="api-guide/parsers/">Parsers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../renderers/">Renderers</a>
|
||||
<a href="api-guide/renderers/">Renderers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../serializers/">Serializers</a>
|
||||
<a href="api-guide/serializers/">Serializers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../fields/">Serializer fields</a>
|
||||
<a href="api-guide/fields/">Serializer fields</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../relations/">Serializer relations</a>
|
||||
<a href="api-guide/relations/">Serializer relations</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../validators/">Validators</a>
|
||||
<a href="api-guide/validators/">Validators</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../authentication/">Authentication</a>
|
||||
<a href="api-guide/authentication/">Authentication</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../permissions/">Permissions</a>
|
||||
<a href="api-guide/permissions/">Permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../caching/">Caching</a>
|
||||
<a href="api-guide/caching/">Caching</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../throttling/">Throttling</a>
|
||||
<a href="api-guide/throttling/">Throttling</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../filtering/">Filtering</a>
|
||||
<a href="api-guide/filtering/">Filtering</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../pagination/">Pagination</a>
|
||||
<a href="api-guide/pagination/">Pagination</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../versioning/">Versioning</a>
|
||||
<a href="api-guide/versioning/">Versioning</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../content-negotiation/">Content negotiation</a>
|
||||
<a href="api-guide/content-negotiation/">Content negotiation</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../metadata/">Metadata</a>
|
||||
<a href="api-guide/metadata/">Metadata</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../schemas/">Schemas</a>
|
||||
<a href="api-guide/schemas/">Schemas</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../format-suffixes/">Format suffixes</a>
|
||||
<a href="api-guide/format-suffixes/">Format suffixes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../reverse/">Returning URLs</a>
|
||||
<a href="api-guide/reverse/">Returning URLs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../exceptions/">Exceptions</a>
|
||||
<a href="api-guide/exceptions/">Exceptions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../status-codes/">Status codes</a>
|
||||
<a href="api-guide/status-codes/">Status codes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../testing/">Testing</a>
|
||||
<a href="api-guide/testing/">Testing</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../settings/">Settings</a>
|
||||
<a href="api-guide/settings/">Settings</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -243,35 +239,35 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../topics/documenting-your-api/">Documenting your API</a>
|
||||
<a href="topics/documenting-your-api/">Documenting your API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/api-clients/">API Clients</a>
|
||||
<a href="topics/api-clients/">API Clients</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/internationalization/">Internationalization</a>
|
||||
<a href="topics/internationalization/">Internationalization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
<a href="topics/ajax-csrf-cors/">AJAX, CSRF & CORS</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/html-and-forms/">HTML & Forms</a>
|
||||
<a href="topics/html-and-forms/">HTML & Forms</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browser-enhancements/">Browser Enhancements</a>
|
||||
<a href="topics/browser-enhancements/">Browser Enhancements</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/browsable-api/">The Browsable API</a>
|
||||
<a href="topics/browsable-api/">The Browsable API</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
<a href="topics/rest-hypermedia-hateoas/">REST, Hypermedia & HATEOAS</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
@ -282,79 +278,83 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
<a href="community/tutorials-and-resources/">Tutorials and Resources</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/third-party-packages/">Third Party Packages</a>
|
||||
<a href="community/third-party-packages/">Third Party Packages</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/contributing/">Contributing to REST framework</a>
|
||||
<a href="community/contributing/">Contributing to REST framework</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/project-management/">Project management</a>
|
||||
<a href="community/project-management/">Project management</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/release-notes/">Release Notes</a>
|
||||
<a href="community/release-notes/">Release Notes</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.9-announcement/">3.9 Announcement</a>
|
||||
<a href="community/3.10-announcement/">3.10 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.8-announcement/">3.8 Announcement</a>
|
||||
<a href="community/3.9-announcement/">3.9 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.7-announcement/">3.7 Announcement</a>
|
||||
<a href="community/3.8-announcement/">3.8 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.6-announcement/">3.6 Announcement</a>
|
||||
<a href="community/3.7-announcement/">3.7 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.5-announcement/">3.5 Announcement</a>
|
||||
<a href="community/3.6-announcement/">3.6 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.4-announcement/">3.4 Announcement</a>
|
||||
<a href="community/3.5-announcement/">3.5 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.3-announcement/">3.3 Announcement</a>
|
||||
<a href="community/3.4-announcement/">3.4 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.2-announcement/">3.2 Announcement</a>
|
||||
<a href="community/3.3-announcement/">3.3 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.1-announcement/">3.1 Announcement</a>
|
||||
<a href="community/3.2-announcement/">3.2 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/3.0-announcement/">3.0 Announcement</a>
|
||||
<a href="community/3.1-announcement/">3.1 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
<a href="community/3.0-announcement/">3.0 Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/mozilla-grant/">Mozilla Grant</a>
|
||||
<a href="community/kickstarter-announcement/">Kickstarter Announcement</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/funding/">Funding</a>
|
||||
<a href="community/mozilla-grant/">Mozilla Grant</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../community/jobs/">Jobs</a>
|
||||
<a href="community/funding/">Funding</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="community/jobs/">Jobs</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
<div class="navbar-inner">
|
||||
<div class="container-fluid">
|
||||
<a class="repo-link btn btn-primary btn-small" href="https://github.com/encode/django-rest-framework/tree/master">GitHub</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="../views/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="api-guide/views/">
|
||||
Next <i class="icon-arrow-right icon-white"></i>
|
||||
</a>
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="next" href="../requests/">
|
||||
<a class="repo-link btn btn-inverse btn-small " rel="prev" href="api-guide/requests/">
|
||||
<i class="icon-arrow-left icon-white"></i> Previous
|
||||
</a>
|
||||
<a id="search_modal_show" class="repo-link btn btn-inverse btn-small" href="#mkdocs_search_modal" data-toggle="modal" data-target="#mkdocs_search_modal"><i class="icon-search icon-white"></i> Search</a>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<ul class="nav navbar-nav">
|
||||
|
||||
<li >
|
||||
<a href="../..">Home</a>
|
||||
<a href="">Home</a>
|
||||
</li>
|
||||
|
||||
<li class="dropdown">
|
||||
|
|
@ -85,35 +85,31 @@
|
|||
<ul class="dropdown-menu">
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/quickstart/">Quickstart</a>
|
||||
<a href="tutorial/quickstart/">Quickstart</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/1-serialization/">1 - Serialization</a>
|
||||
<a href="tutorial/1-serialization/">1 - Serialization</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
<a href="tutorial/2-requests-and-responses/">2 - Requests and responses</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
<a href="tutorial/3-class-based-views/">3 - Class based views</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
<a href="tutorial/4-authentication-and-permissions/">4 - Authentication and permissions</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
<a href="tutorial/5-relationships-and-hyperlinked-apis/">5 - Relationships and hyperlinked APIs</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
<li >
|
||||
<a href="../../tutorial/7-schemas-and-client-libraries/">7 - Schemas and client libraries</a>
|
||||
<a href="tutorial/6-viewsets-and-routers/">6 - Viewsets and routers</a>
|
||||
</li>
|
||||
|
||||
< | ||||