From 8175ad0c2e2cdc440e0fdc5d0225038b4eb5b4be Mon Sep 17 00:00:00 2001
From: Tom Christie
Date: Thu, 20 Oct 2016 15:31:37 +0000
Subject: [PATCH] Deployed c6f1686 with MkDocs version: 0.15.3
---
404.html | 4 +
api-guide/authentication/index.html | 4 +
api-guide/content-negotiation/index.html | 4 +
api-guide/exceptions/index.html | 4 +
api-guide/fields/index.html | 6 +-
api-guide/filtering/index.html | 45 +-
api-guide/format-suffixes/index.html | 4 +
api-guide/generic-views/index.html | 4 +
api-guide/metadata/index.html | 4 +
api-guide/pagination/index.html | 4 +
api-guide/parsers/index.html | 4 +
api-guide/permissions/index.html | 4 +
api-guide/relations/index.html | 4 +
api-guide/renderers/index.html | 4 +
api-guide/requests/index.html | 4 +
api-guide/responses/index.html | 4 +
api-guide/reverse/index.html | 4 +
api-guide/routers/index.html | 4 +
api-guide/schemas/index.html | 36 +-
api-guide/serializers/index.html | 4 +
api-guide/settings/index.html | 4 +
api-guide/status-codes/index.html | 4 +
api-guide/testing/index.html | 8 +-
api-guide/throttling/index.html | 4 +
api-guide/validators/index.html | 4 +
api-guide/versioning/index.html | 4 +
api-guide/views/index.html | 4 +
api-guide/viewsets/index.html | 4 +
img/raml.png | Bin 0 -> 37216 bytes
index.html | 5 +
mkdocs/search_index.json | 211 +++++-
sitemap.xml | 118 +--
topics/3.0-announcement/index.html | 16 +-
topics/3.1-announcement/index.html | 4 +
topics/3.2-announcement/index.html | 4 +
topics/3.3-announcement/index.html | 4 +
topics/3.4-announcement/index.html | 12 +-
topics/3.5-announcement/index.html | 673 ++++++++++++++++++
topics/ajax-csrf-cors/index.html | 4 +
topics/api-clients/index.html | 6 +-
topics/browsable-api/index.html | 4 +
topics/browser-enhancements/index.html | 4 +
topics/contributing/index.html | 4 +
topics/documenting-your-api/index.html | 4 +
topics/funding/index.html | 4 +
topics/html-and-forms/index.html | 14 +-
topics/internationalization/index.html | 4 +
topics/kickstarter-announcement/index.html | 6 +-
topics/mozilla-grant/index.html | 4 +
topics/project-management/index.html | 4 +
topics/release-notes/index.html | 12 +
topics/rest-hypermedia-hateoas/index.html | 4 +
topics/third-party-resources/index.html | 15 +-
tutorial/1-serialization/index.html | 10 +-
tutorial/2-requests-and-responses/index.html | 12 +-
tutorial/3-class-based-views/index.html | 22 +-
.../index.html | 6 +-
.../index.html | 12 +-
tutorial/6-viewsets-and-routers/index.html | 12 +-
.../7-schemas-and-client-libraries/index.html | 4 +
tutorial/quickstart/index.html | 4 +
61 files changed, 1243 insertions(+), 170 deletions(-)
create mode 100644 img/raml.png
create mode 100644 topics/3.5-announcement/index.html
diff --git a/404.html b/404.html
index 4d7e19e9b..6330872e6 100644
--- a/404.html
+++ b/404.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/authentication/index.html b/api-guide/authentication/index.html
index 4588e5214..dfc424059 100644
--- a/api-guide/authentication/index.html
+++ b/api-guide/authentication/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/content-negotiation/index.html b/api-guide/content-negotiation/index.html
index 6ed6bb7ab..bc296cde7 100644
--- a/api-guide/content-negotiation/index.html
+++ b/api-guide/content-negotiation/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/exceptions/index.html b/api-guide/exceptions/index.html
index 4d8988cf3..12933aafa 100644
--- a/api-guide/exceptions/index.html
+++ b/api-guide/exceptions/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/fields/index.html b/api-guide/fields/index.html
index fb97d7da1..d0b5087fd 100644
--- a/api-guide/fields/index.html
+++ b/api-guide/fields/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
@@ -786,7 +790,7 @@ color_channel = serializers.ChoiceField(
Format strings may either be Python strftime formats which explicitly specify the format, or the special string 'iso-8601'
, which indicates that ISO 8601 style datetimes should be used. (eg '2013-01-29T12:34:56.000000Z'
)
When a value of None
is used for the format datetime
objects will be returned by to_representation
and the final output representation will determined by the renderer class.
In the case of JSON this means the default datetime representation uses the ECMA 262 date time string specification. This is a subset of ISO 8601 which uses millisecond precision, and includes the 'Z' suffix for the UTC timezone, for example: 2013-01-29T12:34:56.123Z
.
-
+auto_now_add
model fields.auto_now
and
When using ModelSerializer
or HyperlinkedModelSerializer
, note that any model fields with auto_now=True
or auto_now_add=True
will use serializer fields that are read_only=True
by default.
If you want to override this behavior, you'll need to declare the DateTimeField
explicitly on the serializer. For example:
class CommentSerializer(serializers.ModelSerializer):
diff --git a/api-guide/filtering/index.html b/api-guide/filtering/index.html
index a4e74f15e..d7af9ceaf 100644
--- a/api-guide/filtering/index.html
+++ b/api-guide/filtering/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
@@ -546,22 +550,22 @@ class PurchaseList(generics.ListAPIView):
Generic filters can also present themselves as HTML controls in the browsable API and admin API.
![Filter Example](../../img/filter-controls.png)
-The default filter backends may be set globally, using the DEFAULT_FILTER_BACKENDS
setting. For example.
+The default filter backends may be set globally, using the DEFAULT_FILTER_BACKENDS
setting. For example.
REST_FRAMEWORK = {
- 'DEFAULT_FILTER_BACKENDS': ('rest_framework.filters.DjangoFilterBackend',)
+ 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',)
}
You can also set the filter backends on a per-view, or per-viewset basis,
using the GenericAPIView
class-based views.
-from django.contrib.auth.models import User
+import django_filters
+from django.contrib.auth.models import User
from myapp.serializers import UserSerializer
-from rest_framework import filters
from rest_framework import generics
class UserListView(generics.ListAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
- filter_backends = (filters.DjangoFilterBackend,)
+ filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)
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.
@@ -586,10 +590,23 @@ class UserListView(generics.ListAPIView):
-The DjangoFilterBackend
class supports highly customizable field filtering, using the django-filter package.
-To use REST framework's DjangoFilterBackend
, first install django-filter
.
+The django-filter
library includes a DjangoFilterBackend
class which
+supports highly customizable field filtering for REST framework.
+To use DjangoFilterBackend
, first install django-filter
.
pip install django-filter
+You should now either add the filter backend to your settings:
+REST_FRAMEWORK = {
+ 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',)
+}
+
+Or add the filter backend to an individual View or ViewSet.
+from django_filters.rest_framework import DjangoFilterBackend
+
+class UserListView(generics.ListAPIView):
+ ...
+ filter_backends = (DjangoFilterBackend,)
+
If you are using the browsable API or admin API you may also want to install django-crispy-forms
, which will enhance the presentation of the filter forms in HTML views, by allowing them to render Bootstrap 3 HTML.
pip install django-crispy-forms
@@ -611,10 +628,9 @@ class UserListView(generics.ListAPIView):
import django_filters
from myapp.models import Product
from myapp.serializers import ProductSerializer
-from rest_framework import filters
from rest_framework import generics
-class ProductFilter(filters.FilterSet):
+class ProductFilter(django_filters.rest_framework.FilterSet):
min_price = django_filters.NumberFilter(name="price", lookup_expr='gte')
max_price = django_filters.NumberFilter(name="price", lookup_expr='lte')
class Meta:
@@ -624,7 +640,7 @@ class ProductFilter(filters.FilterSet):
class ProductList(generics.ListAPIView):
queryset = Product.objects.all()
serializer_class = ProductSerializer
- filter_backends = (filters.DjangoFilterBackend,)
+ filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)
filter_class = ProductFilter
Which will allow you to make requests such as:
@@ -633,12 +649,12 @@ class ProductList(generics.ListAPIView):
You can also span relationships using django-filter
, let's assume that each
product has foreign key to Manufacturer
model, so we create filter that
filters using Manufacturer
name. For example:
-from myapp.models import Product
+import django_filters
+from myapp.models import Product
from myapp.serializers import ProductSerializer
-from rest_framework import filters
from rest_framework import generics
-class ProductFilter(filters.FilterSet):
+class ProductFilter(django_filters.rest_framework.FilterSet):
class Meta:
model = Product
fields = ['category', 'in_stock', 'manufacturer__name']
@@ -650,10 +666,9 @@ class ProductFilter(filters.FilterSet):
import django_filters
from myapp.models import Product
from myapp.serializers import ProductSerializer
-from rest_framework import filters
from rest_framework import generics
-class ProductFilter(filters.FilterSet):
+class ProductFilter(django_filters.rest_framework.FilterSet):
manufacturer = django_filters.CharFilter(name="manufacturer__name")
class Meta:
diff --git a/api-guide/format-suffixes/index.html b/api-guide/format-suffixes/index.html
index 929394771..fde9b2218 100644
--- a/api-guide/format-suffixes/index.html
+++ b/api-guide/format-suffixes/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/generic-views/index.html b/api-guide/generic-views/index.html
index 46f307a7f..605ea2bff 100644
--- a/api-guide/generic-views/index.html
+++ b/api-guide/generic-views/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/metadata/index.html b/api-guide/metadata/index.html
index 87a0aa6c3..a05422a35 100644
--- a/api-guide/metadata/index.html
+++ b/api-guide/metadata/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/pagination/index.html b/api-guide/pagination/index.html
index 3fd8e2c67..7357e1103 100644
--- a/api-guide/pagination/index.html
+++ b/api-guide/pagination/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/parsers/index.html b/api-guide/parsers/index.html
index 6e080bd49..cc80c447f 100644
--- a/api-guide/parsers/index.html
+++ b/api-guide/parsers/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/permissions/index.html b/api-guide/permissions/index.html
index 1da41ec9e..9042ddbdb 100644
--- a/api-guide/permissions/index.html
+++ b/api-guide/permissions/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/relations/index.html b/api-guide/relations/index.html
index ec2b0a686..c6d6afa64 100644
--- a/api-guide/relations/index.html
+++ b/api-guide/relations/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/renderers/index.html b/api-guide/renderers/index.html
index f034e4f9a..67c0fb2f8 100644
--- a/api-guide/renderers/index.html
+++ b/api-guide/renderers/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/requests/index.html b/api-guide/requests/index.html
index 0f7cf9547..1edaaad7b 100644
--- a/api-guide/requests/index.html
+++ b/api-guide/requests/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/responses/index.html b/api-guide/responses/index.html
index 1760df8fb..49b28c5c7 100644
--- a/api-guide/responses/index.html
+++ b/api-guide/responses/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/reverse/index.html b/api-guide/reverse/index.html
index d62960aad..89122baf2 100644
--- a/api-guide/reverse/index.html
+++ b/api-guide/reverse/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/routers/index.html b/api-guide/routers/index.html
index 237775b50..fc35e74d8 100644
--- a/api-guide/routers/index.html
+++ b/api-guide/routers/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/schemas/index.html b/api-guide/schemas/index.html
index 92552db0e..a8496564e 100644
--- a/api-guide/schemas/index.html
+++ b/api-guide/schemas/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
@@ -738,12 +742,12 @@ generate a schema.
Arguments:
-title
- The name of the API. required
+title
required - The name of the API.
url
- The root URL of the API schema. This option is not required unless the schema is included under path prefix.
patterns
- A list of URLs to inspect when generating the schema. Defaults to the project's URL conf.
urlconf
- A URL conf module name to use when generating the schema. Defaults to settings.ROOT_URLCONF
.
-
+
Returns a coreapi.Document
instance that represents the API schema.
@api_view
@renderer_classes([renderers.CoreJSONRenderer])
@@ -751,10 +755,30 @@ def schema_view(request):
generator = schemas.SchemaGenerator(title='Bookings API')
return Response(generator.get_schema())
-Arguments:
-
-request
- The incoming request. Optionally used if you want to apply per-user permissions to the schema-generation.
-
+The request
argument is optional, and may be used if you want to apply per-user
+permissions to the resulting schema generation.
+
+Return a nested dictionary containing all the links that should be included in the API schema.
+This is a good point to override if you want to modify the resulting structure of the generated schema,
+as you can build a new dictionary with a different layout.
+
+Returns a coreapi.Link
instance corresponding to the given view.
+You can override this if you need to provide custom behaviors for particular views.
+
+Returns a string to use as the link description. By default this is based on the
+view docstring as described in the "Schemas as Documentation" section above.
+
+Returns a string to indicate the encoding for any request body, when interacting
+with the given view. Eg. 'application/json'
. May return a blank string for views
+that do not expect a request body.
+
+Return a list of coreapi.Link()
instances. One for each path parameter in the URL.
+
+Return a list of coreapi.Link()
instances. One for each field in the serializer class used by the view.
+
+Return a list of coreapi.Link()
instances, as returned by the get_schema_fields()
method on any pagination class used by the view.
+
+Return a list of coreapi.Link()
instances, as returned by the get_schema_fields()
method of any filter classes used by the view.
This documentation gives a brief overview of the components within the coreapi
diff --git a/api-guide/serializers/index.html b/api-guide/serializers/index.html
index 479ec4dc3..d7b3f6437 100644
--- a/api-guide/serializers/index.html
+++ b/api-guide/serializers/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/settings/index.html b/api-guide/settings/index.html
index 110a0b61a..6488c63b7 100644
--- a/api-guide/settings/index.html
+++ b/api-guide/settings/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/status-codes/index.html b/api-guide/status-codes/index.html
index 30a621fc0..294b4c915 100644
--- a/api-guide/status-codes/index.html
+++ b/api-guide/status-codes/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/testing/index.html b/api-guide/testing/index.html
index 44bbd1461..36ed0db7c 100644
--- a/api-guide/testing/index.html
+++ b/api-guide/testing/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
@@ -628,6 +632,7 @@ using the popular Python library, requests
.
directly.
client = RequestsClient()
response = client.get('http://testserver/users/')
+assert response.status_code == 200
Note that the requests client requires you to pass fully qualified URLs.
@@ -672,9 +677,8 @@ do not directly affect customer data.
The CoreAPIClient allows you to interact with your API using the Python
coreapi
client library.
# Fetch the API schema
-url = reverse('schema')
client = CoreAPIClient()
-schema = client.get(url)
+schema = client.get('http://testserver/schema/')
# Create a new organisation
params = {'name': 'MegaCorp', 'status': 'active'}
diff --git a/api-guide/throttling/index.html b/api-guide/throttling/index.html
index 3c4e4d0e6..170a3e74e 100644
--- a/api-guide/throttling/index.html
+++ b/api-guide/throttling/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/validators/index.html b/api-guide/validators/index.html
index 395b66287..af9dda557 100644
--- a/api-guide/validators/index.html
+++ b/api-guide/validators/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/versioning/index.html b/api-guide/versioning/index.html
index 7a2d8f280..b635fbced 100644
--- a/api-guide/versioning/index.html
+++ b/api-guide/versioning/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/views/index.html b/api-guide/views/index.html
index 4db79efca..e6f506149 100644
--- a/api-guide/views/index.html
+++ b/api-guide/views/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/api-guide/viewsets/index.html b/api-guide/viewsets/index.html
index 7436a4eb4..67779867f 100644
--- a/api-guide/viewsets/index.html
+++ b/api-guide/viewsets/index.html
@@ -302,6 +302,10 @@
3.4 Announcement
+
+ 3.5 Announcement
+
+
Kickstarter Announcement
diff --git a/img/raml.png b/img/raml.png
new file mode 100644
index 0000000000000000000000000000000000000000..87790dc484f9c6c0617189ae2766bdc1e00a3bfa
GIT binary patch
literal 37216
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