From d2d1914e2e88b13b4c6b3808bc8d57bd47189085 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 4 Dec 2013 15:00:19 +0000 Subject: [PATCH] Build contribution guide docs --- api-guide/authentication.html | 1 + api-guide/content-negotiation.html | 1 + api-guide/exceptions.html | 1 + api-guide/fields.html | 5 +- api-guide/filtering.html | 1 + api-guide/format-suffixes.html | 1 + api-guide/generic-views.html | 5 +- api-guide/pagination.html | 1 + api-guide/parsers.html | 1 + api-guide/permissions.html | 1 + api-guide/relations.html | 1 + api-guide/renderers.html | 5 +- api-guide/requests.html | 1 + api-guide/responses.html | 1 + api-guide/reverse.html | 1 + api-guide/routers.html | 1 + api-guide/serializers.html | 1 + api-guide/settings.html | 1 + api-guide/status-codes.html | 1 + api-guide/testing.html | 1 + api-guide/throttling.html | 1 + api-guide/views.html | 1 + api-guide/viewsets.html | 3 +- img/travis-status.png | Bin 0 -> 10023 bytes index.html | 2 + topics/2.2-announcement.html | 1 + topics/2.3-announcement.html | 1 + topics/ajax-csrf-cors.html | 1 + topics/browsable-api.html | 1 + topics/browser-enhancements.html | 1 + topics/contributing.html | 101 ++++++++++-------- topics/credits.html | 2 + topics/documenting-your-api.html | 1 + topics/release-notes.html | 8 ++ topics/rest-framework-2-announcement.html | 1 + topics/rest-hypermedia-hateoas.html | 1 + topics/writable-nested-serializers.html | 1 + tutorial/1-serialization.html | 1 + tutorial/2-requests-and-responses.html | 1 + tutorial/3-class-based-views.html | 1 + .../4-authentication-and-permissions.html | 1 + .../5-relationships-and-hyperlinked-apis.html | 1 + tutorial/6-viewsets-and-routers.html | 1 + tutorial/quickstart.html | 1 + 44 files changed, 115 insertions(+), 51 deletions(-) create mode 100644 img/travis-status.png diff --git a/api-guide/authentication.html b/api-guide/authentication.html index 63c2f3f01..8bbed7c04 100644 --- a/api-guide/authentication.html +++ b/api-guide/authentication.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/content-negotiation.html b/api-guide/content-negotiation.html index c21a6430e..147e11e68 100644 --- a/api-guide/content-negotiation.html +++ b/api-guide/content-negotiation.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/exceptions.html b/api-guide/exceptions.html index 16dc8752b..9887d7677 100644 --- a/api-guide/exceptions.html +++ b/api-guide/exceptions.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/fields.html b/api-guide/fields.html index dae3cc692..00c65b1cc 100644 --- a/api-guide/fields.html +++ b/api-guide/fields.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • @@ -247,7 +248,7 @@ Set to false if this field is not required to be present during deserialization.

    Defaults to True.

    default

    -

    If set, this gives the default value that will be used for the field if none is supplied. If not set the default behavior is to not populate the attribute at all.

    +

    If set, this gives the default value that will be used for the field if no input value is supplied. If not set the default behavior is to not populate the attribute at all.

    May be set to a function or other callable, in which case the value will be evaluated each time it is used.

    validators

    A list of Django validators that should be used to validate deserialized values.

    @@ -407,7 +408,7 @@ or django.db.models.fields.TextField.

    ImageField

    An image representation.

    Corresponds to django.forms.fields.ImageField.

    -

    Requires the PIL package.

    +

    Requires either the Pillow package or PIL package. The Pillow package is recommended, as PIL is no longer actively maintained.

    Signature and validation is the same as with FileField.


    Note: FileFields and ImageFields are only suitable for use with MultiPartParser, since e.g. json doesn't support file uploads. diff --git a/api-guide/filtering.html b/api-guide/filtering.html index 28dae4e86..6cfa40a33 100644 --- a/api-guide/filtering.html +++ b/api-guide/filtering.html @@ -102,6 +102,7 @@

  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/format-suffixes.html b/api-guide/format-suffixes.html index 38557dafd..1c1f9a4ce 100644 --- a/api-guide/format-suffixes.html +++ b/api-guide/format-suffixes.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/generic-views.html b/api-guide/generic-views.html index e1ef2ea9c..2828fa42e 100644 --- a/api-guide/generic-views.html +++ b/api-guide/generic-views.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • @@ -346,11 +347,13 @@ class UserList(generics.ListCreateAPIView): return 20 return 100 -

    Save hooks:

    +

    Save / deletion hooks:

    The following methods are provided as placeholder interfaces. They contain empty implementations and are not called directly by GenericAPIView, but they are overridden and used by some of the mixin classes.

    The pre_save method in particular is a useful hook for setting attributes that are implicit in the request, but are not part of the request data. For instance, you might set an attribute on the object based on the request user, or based on a URL keyword argument.

    def pre_save(self, obj):
    diff --git a/api-guide/pagination.html b/api-guide/pagination.html
    index 395a94ec8..d3a268fb5 100644
    --- a/api-guide/pagination.html
    +++ b/api-guide/pagination.html
    @@ -102,6 +102,7 @@
                       
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/parsers.html b/api-guide/parsers.html index 5a4fcd7cf..a7a878989 100644 --- a/api-guide/parsers.html +++ b/api-guide/parsers.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/permissions.html b/api-guide/permissions.html index 7153f0c2a..8ad8f8c6c 100644 --- a/api-guide/permissions.html +++ b/api-guide/permissions.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/relations.html b/api-guide/relations.html index d4bdc3931..34252036a 100644 --- a/api-guide/relations.html +++ b/api-guide/relations.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/renderers.html b/api-guide/renderers.html index 11b0e1613..cb723e6a9 100644 --- a/api-guide/renderers.html +++ b/api-guide/renderers.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • @@ -338,14 +339,14 @@ Unlike other renderers, the data passed to the Response does not ne
  • The return result of calling view.get_template_names().
  • An example of a view that uses TemplateHTMLRenderer:

    -
    class UserDetail(generics.RetrieveUserAPIView):
    +
    class UserDetail(generics.RetrieveAPIView):
         """
         A view that returns a templated HTML representations of a given user.
         """
         queryset = User.objects.all()
         renderer_classes = (TemplateHTMLRenderer,)
     
    -    def get(self, request, *args, **kwargs)
    +    def get(self, request, *args, **kwargs):
             self.object = self.get_object()
             return Response({'user': self.object}, template_name='user_detail.html')
     
    diff --git a/api-guide/requests.html b/api-guide/requests.html index ee15a0a8a..9a496e30d 100644 --- a/api-guide/requests.html +++ b/api-guide/requests.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/responses.html b/api-guide/responses.html index 9c4707401..b14730378 100644 --- a/api-guide/responses.html +++ b/api-guide/responses.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/reverse.html b/api-guide/reverse.html index 172ef1e85..d6af0887f 100644 --- a/api-guide/reverse.html +++ b/api-guide/reverse.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/routers.html b/api-guide/routers.html index e3d212da5..0bc72e5ff 100644 --- a/api-guide/routers.html +++ b/api-guide/routers.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/serializers.html b/api-guide/serializers.html index 39ca749c6..c7baee146 100644 --- a/api-guide/serializers.html +++ b/api-guide/serializers.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/settings.html b/api-guide/settings.html index 0ab1f6758..f265863ce 100644 --- a/api-guide/settings.html +++ b/api-guide/settings.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/status-codes.html b/api-guide/status-codes.html index c6a3dea89..906b2f9e5 100644 --- a/api-guide/status-codes.html +++ b/api-guide/status-codes.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/testing.html b/api-guide/testing.html index 7f90df040..df09659ea 100644 --- a/api-guide/testing.html +++ b/api-guide/testing.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/throttling.html b/api-guide/throttling.html index 7f8539f09..cb633916f 100644 --- a/api-guide/throttling.html +++ b/api-guide/throttling.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/views.html b/api-guide/views.html index 21c4ce4e1..c8338560e 100644 --- a/api-guide/views.html +++ b/api-guide/views.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/api-guide/viewsets.html b/api-guide/viewsets.html index a9952205a..0b3293e30 100644 --- a/api-guide/viewsets.html +++ b/api-guide/viewsets.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • @@ -347,7 +348,7 @@ class UserViewSet(viewsets.ModelViewSet):

    The ModelViewSet class inherits from GenericAPIView and includes implementations for various actions, by mixing in the behavior of the various mixin classes.

    The actions provided by the ModelViewSet class are .list(), .retrieve(), .create(), .update(), and .destroy().

    Example

    -

    Because ModelViewSet extends GenericAPIView, you'll normally need to provide at least the queryset and serializer_class attributes. For example:

    +

    Because ModelViewSet extends GenericAPIView, you'll normally need to provide at least the queryset and serializer_class attributes, or the model attribute shortcut. For example:

    class AccountViewSet(viewsets.ModelViewSet):
         """
         A simple ViewSet for viewing and editing accounts.
    diff --git a/img/travis-status.png b/img/travis-status.png
    new file mode 100644
    index 0000000000000000000000000000000000000000..fec98cf9b2ba728a532df7b50b89f505053e9012
    GIT binary patch
    literal 10023
    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
    zm{-Browser enhancements
                       
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • @@ -364,6 +365,7 @@ urlpatterns = patterns('',
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/topics/2.2-announcement.html b/topics/2.2-announcement.html index dfb710ee3..4b3b1b5b3 100644 --- a/topics/2.2-announcement.html +++ b/topics/2.2-announcement.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/topics/2.3-announcement.html b/topics/2.3-announcement.html index 3ac50d6d5..c2f7eb764 100644 --- a/topics/2.3-announcement.html +++ b/topics/2.3-announcement.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/topics/ajax-csrf-cors.html b/topics/ajax-csrf-cors.html index 0c90d60cb..5f7f51ae4 100644 --- a/topics/ajax-csrf-cors.html +++ b/topics/ajax-csrf-cors.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/topics/browsable-api.html b/topics/browsable-api.html index f85235117..6306c97e2 100644 --- a/topics/browsable-api.html +++ b/topics/browsable-api.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/topics/browser-enhancements.html b/topics/browser-enhancements.html index 118d290cb..c62c7f713 100644 --- a/topics/browser-enhancements.html +++ b/topics/browser-enhancements.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/topics/contributing.html b/topics/contributing.html index 7170c91d5..0c1f0da9c 100644 --- a/topics/contributing.html +++ b/topics/contributing.html @@ -6,7 +6,7 @@ - + @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • @@ -168,16 +169,18 @@
    diff --git a/topics/credits.html b/topics/credits.html index f0086c58c..1991f1e21 100644 --- a/topics/credits.html +++ b/topics/credits.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • @@ -381,6 +382,7 @@
  • Yamila Moreno - yamila-moreno
  • Rob Hudson - robhudson
  • Alex Good - alexjg
  • +
  • Ian Foote - ian-foote
  • Many thanks to everyone who's contributed to the project.

    Additional thanks

    diff --git a/topics/documenting-your-api.html b/topics/documenting-your-api.html index b622c0edb..22cec3607 100644 --- a/topics/documenting-your-api.html +++ b/topics/documenting-your-api.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • diff --git a/topics/release-notes.html b/topics/release-notes.html index f7ae55a24..6c205ab25 100644 --- a/topics/release-notes.html +++ b/topics/release-notes.html @@ -102,6 +102,7 @@
  • Browser enhancements
  • The Browsable API
  • REST, Hypermedia & HATEOAS
  • +
  • Contributing to REST framework
  • 2.0 Announcement
  • 2.2 Announcement
  • 2.3 Announcement
  • @@ -243,6 +244,13 @@

    2.3.x series

    +

    Master

    +
      +
    • Add in choices information for ChoiceFields in response to OPTIONS requests.
    • +
    • Added pre_delete() and post_delete() method hooks.
    • +
    • Bugfix: Responses without any content no longer include an HTTP 'Content-Type' header.
    • +
    • Bugfix: Correctly handle validation errors in PUT-as-create case, responding with 400.
    • +

    2.3.9

    Date: 15th November 2013