diff --git a/404.html b/404.html index 912d75b2f..b5ff70705 100644 --- a/404.html +++ b/404.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/authentication/index.html b/api-guide/authentication/index.html index f289afca8..c93b6b8b7 100644 --- a/api-guide/authentication/index.html +++ b/api-guide/authentication/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/content-negotiation/index.html b/api-guide/content-negotiation/index.html index 0fa99caba..9733b3ac5 100644 --- a/api-guide/content-negotiation/index.html +++ b/api-guide/content-negotiation/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/exceptions/index.html b/api-guide/exceptions/index.html index 5a21b4fc8..70c9e8496 100644 --- a/api-guide/exceptions/index.html +++ b/api-guide/exceptions/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/fields/index.html b/api-guide/fields/index.html index 6f151278e..4fd35988c 100644 --- a/api-guide/fields/index.html +++ b/api-guide/fields/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/filtering/index.html b/api-guide/filtering/index.html index 14a60edbe..affe38466 100644 --- a/api-guide/filtering/index.html +++ b/api-guide/filtering/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/format-suffixes/index.html b/api-guide/format-suffixes/index.html index c86fc0cc5..48a6aaeb6 100644 --- a/api-guide/format-suffixes/index.html +++ b/api-guide/format-suffixes/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/generic-views/index.html b/api-guide/generic-views/index.html index 3773adbdd..1f15aef36 100644 --- a/api-guide/generic-views/index.html +++ b/api-guide/generic-views/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/metadata/index.html b/api-guide/metadata/index.html index 22ea4ef94..d85f9463d 100644 --- a/api-guide/metadata/index.html +++ b/api-guide/metadata/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/pagination/index.html b/api-guide/pagination/index.html index 0a9d7cf71..38a5555a5 100644 --- a/api-guide/pagination/index.html +++ b/api-guide/pagination/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/parsers/index.html b/api-guide/parsers/index.html index 6f59d7f0b..639d25997 100644 --- a/api-guide/parsers/index.html +++ b/api-guide/parsers/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/permissions/index.html b/api-guide/permissions/index.html index f39e4d421..fcdc2688c 100644 --- a/api-guide/permissions/index.html +++ b/api-guide/permissions/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/relations/index.html b/api-guide/relations/index.html index 4cd55da0c..29f05deef 100644 --- a/api-guide/relations/index.html +++ b/api-guide/relations/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/renderers/index.html b/api-guide/renderers/index.html index 4a9c0743c..ecf88375d 100644 --- a/api-guide/renderers/index.html +++ b/api-guide/renderers/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/requests/index.html b/api-guide/requests/index.html index 4260566dd..84927fcef 100644 --- a/api-guide/requests/index.html +++ b/api-guide/requests/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/responses/index.html b/api-guide/responses/index.html index 2915cd423..30b6f616e 100644 --- a/api-guide/responses/index.html +++ b/api-guide/responses/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/reverse/index.html b/api-guide/reverse/index.html index 22ef051d3..cee9e9b11 100644 --- a/api-guide/reverse/index.html +++ b/api-guide/reverse/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/routers/index.html b/api-guide/routers/index.html index 88b0300aa..2d0ec0a43 100644 --- a/api-guide/routers/index.html +++ b/api-guide/routers/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/schemas/index.html b/api-guide/schemas/index.html index 4997d3b88..03becc0ee 100644 --- a/api-guide/schemas/index.html +++ b/api-guide/schemas/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/serializers/index.html b/api-guide/serializers/index.html index d99891477..6223a05a6 100644 --- a/api-guide/serializers/index.html +++ b/api-guide/serializers/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/settings/index.html b/api-guide/settings/index.html index d31189224..0934f16bb 100644 --- a/api-guide/settings/index.html +++ b/api-guide/settings/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/status-codes/index.html b/api-guide/status-codes/index.html index aa60ebe78..cc8287ee9 100644 --- a/api-guide/status-codes/index.html +++ b/api-guide/status-codes/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/testing/index.html b/api-guide/testing/index.html index d67085bc7..25bced4e0 100644 --- a/api-guide/testing/index.html +++ b/api-guide/testing/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/throttling/index.html b/api-guide/throttling/index.html index 049b05cea..a9d82654f 100644 --- a/api-guide/throttling/index.html +++ b/api-guide/throttling/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/validators/index.html b/api-guide/validators/index.html index ef18e4be6..8bc47a41c 100644 --- a/api-guide/validators/index.html +++ b/api-guide/validators/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/versioning/index.html b/api-guide/versioning/index.html index 4f5cfa9fe..6dfe00847 100644 --- a/api-guide/versioning/index.html +++ b/api-guide/versioning/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/views/index.html b/api-guide/views/index.html index 55c4b5f69..02b73d4c9 100644 --- a/api-guide/views/index.html +++ b/api-guide/views/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/api-guide/viewsets/index.html b/api-guide/viewsets/index.html index bafa99835..700e118cd 100644 --- a/api-guide/viewsets/index.html +++ b/api-guide/viewsets/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/index.html b/index.html index 492929839..66dcf89c5 100644 --- a/index.html +++ b/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • @@ -692,6 +696,7 @@ urlpatterns = [
  • 3.5 Announcement
  • 3.6 Announcement
  • 3.7 Announcement
  • +
  • 3.8 Announcement
  • Kickstarter Announcement
  • Mozilla Grant
  • Funding
  • diff --git a/mkdocs/search_index.json b/mkdocs/search_index.json index b6345f1b6..4a23f9453 100644 --- a/mkdocs/search_index.json +++ b/mkdocs/search_index.json @@ -2,7 +2,7 @@ "docs": [ { "location": "/", - "text": ".promo li a {\n float: left;\n width: 130px;\n height: 20px;\n text-align: center;\n margin: 10px 30px;\n padding: 150px 0 0 0;\n background-position: 0 50%;\n background-size: 130px auto;\n background-repeat: no-repeat;\n font-size: 120%;\n color: black;\n}\n.promo li {\n list-style: none;\n}\n\n\n\n\n\n \n\n\n \n\n \n\n \n\n\n \n\n \n\n \n\n\n\n\n\n\n\nNote\n: This is the documentation for the \nversion 3\n of REST framework. Documentation for \nversion 2\n is also available.\n\n\n\n\n\n\nDjango REST Framework\n\n\n\n\n\n\n\n\nDjango REST framework is a powerful and flexible toolkit for building Web APIs.\n\n\nSome reasons you might want to use REST framework:\n\n\n\n\nThe \nWeb browsable API\n is a huge usability win for your developers.\n\n\nAuthentication policies\n including packages for \nOAuth1a\n and \nOAuth2\n.\n\n\nSerialization\n that supports both \nORM\n and \nnon-ORM\n data sources.\n\n\nCustomizable all the way down - just use \nregular function-based views\n if you don't need the \nmore\n \npowerful\n \nfeatures\n.\n\n\nExtensive documentation\n, and \ngreat community support\n.\n\n\nUsed and trusted by internationally recognised companies including \nMozilla\n, \nRed Hat\n, \nHeroku\n, and \nEventbrite\n.\n\n\n\n\n\n\nFunding\n\n\nREST framework is a \ncollaboratively funded project\n. If you use\nREST framework commercially we strongly encourage you to invest in its\ncontinued development by \nsigning up for a paid plan\n.\n\n\nEvery single sign-up helps us make REST framework long-term financially sustainable.\n\n\n\n \nRover.com\n\n \nSentry\n\n \nStream\n\n \nMachinalis\n\n \nRollbar\n\n\n\n\n\n\n\n\nMany thanks to all our \nwonderful sponsors\n, and in particular to our premium backers, \nRover\n, \nSentry\n, \nStream\n, \nMachinalis\n, and \nRollbar\n.\n\n\n\n\nRequirements\n\n\nREST framework requires the following:\n\n\n\n\nPython (2.7, 3.2, 3.3, 3.4, 3.5, 3.6)\n\n\nDjango (1.10, 1.11, 2.0)\n\n\n\n\nThe following packages are optional:\n\n\n\n\ncoreapi\n (1.32.0+) - Schema generation support.\n\n\nMarkdown\n (2.1.0+) - Markdown support for the browsable API.\n\n\ndjango-filter\n (1.0.1+) - Filtering support.\n\n\ndjango-crispy-forms\n - Improved HTML display for filtering.\n\n\ndjango-guardian\n (1.1.1+) - Object level permissions support.\n\n\n\n\nInstallation\n\n\nInstall using \npip\n, including any optional packages you want...\n\n\npip install djangorestframework\npip install markdown # Markdown support for the browsable API.\npip install django-filter # Filtering support\n\n\n\n...or clone the project from github.\n\n\ngit clone git@github.com:encode/django-rest-framework.git\n\n\n\nAdd \n'rest_framework'\n to your \nINSTALLED_APPS\n setting.\n\n\nINSTALLED_APPS = (\n ...\n 'rest_framework',\n)\n\n\n\nIf you're intending to use the browsable API you'll probably also want to add REST framework's login and logout views. Add the following to your root \nurls.py\n file.\n\n\nurlpatterns = [\n ...\n url(r'^api-auth/', include('rest_framework.urls'))\n]\n\n\n\nNote that the URL path can be whatever you want.\n\n\nExample\n\n\nLet's take a look at a quick example of using REST framework to build a simple model-backed API.\n\n\nWe'll create a read-write API for accessing information on the users of our project.\n\n\nAny global settings for a REST framework API are kept in a single configuration dictionary named \nREST_FRAMEWORK\n. Start off by adding the following to your \nsettings.py\n module:\n\n\nREST_FRAMEWORK = {\n # Use Django's standard `django.contrib.auth` permissions,\n # or allow read-only access for unauthenticated users.\n 'DEFAULT_PERMISSION_CLASSES': [\n 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'\n ]\n}\n\n\n\nDon't forget to make sure you've also added \nrest_framework\n to your \nINSTALLED_APPS\n.\n\n\nWe're ready to create our API now.\nHere's our project's root \nurls.py\n module:\n\n\nfrom django.conf.urls import url, include\nfrom django.contrib.auth.models import User\nfrom rest_framework import routers, serializers, viewsets\n\n# Serializers define the API representation.\nclass UserSerializer(serializers.HyperlinkedModelSerializer):\n class Meta:\n model = User\n fields = ('url', 'username', 'email', 'is_staff')\n\n# ViewSets define the view behavior.\nclass UserViewSet(viewsets.ModelViewSet):\n queryset = User.objects.all()\n serializer_class = UserSerializer\n\n# Routers provide an easy way of automatically determining the URL conf.\nrouter = routers.DefaultRouter()\nrouter.register(r'users', UserViewSet)\n\n# Wire up our API using automatic URL routing.\n# Additionally, we include login URLs for the browsable API.\nurlpatterns = [\n url(r'^', include(router.urls)),\n url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))\n]\n\n\n\nYou can now open the API in your browser at \nhttp://127.0.0.1:8000/\n, and view your new 'users' API. If you use the login control in the top right corner you'll also be able to add, create and delete users from the system.\n\n\nQuickstart\n\n\nCan't wait to get started? The \nquickstart guide\n is the fastest way to get up and running, and building APIs with REST framework.\n\n\nTutorial\n\n\nThe tutorial will walk you through the building blocks that make up REST framework. It'll take a little while to get through, but it'll give you a comprehensive understanding of how everything fits together, and is highly recommended reading.\n\n\n\n\n1 - Serialization\n\n\n2 - Requests & Responses\n\n\n3 - Class-based views\n\n\n4 - Authentication & permissions\n\n\n5 - Relationships & hyperlinked APIs\n\n\n6 - Viewsets & routers\n\n\n7 - Schemas & client libraries\n\n\n\n\nThere is a live example API of the finished tutorial API for testing purposes, \navailable here\n.\n\n\nAPI Guide\n\n\nThe API guide is your complete reference manual to all the functionality provided by REST framework.\n\n\n\n\nRequests\n\n\nResponses\n\n\nViews\n\n\nGeneric views\n\n\nViewsets\n\n\nRouters\n\n\nParsers\n\n\nRenderers\n\n\nSerializers\n\n\nSerializer fields\n\n\nSerializer relations\n\n\nValidators\n\n\nAuthentication\n\n\nPermissions\n\n\nThrottling\n\n\nFiltering\n\n\nPagination\n\n\nVersioning\n\n\nContent negotiation\n\n\nMetadata\n\n\nSchemas\n\n\nFormat suffixes\n\n\nReturning URLs\n\n\nExceptions\n\n\nStatus codes\n\n\nTesting\n\n\nSettings\n\n\n\n\nTopics\n\n\nGeneral guides to using REST framework.\n\n\n\n\nDocumenting your API\n\n\nAPI Clients\n\n\nInternationalization\n\n\nAJAX, CSRF & CORS\n\n\nHTML & Forms\n\n\nBrowser enhancements\n\n\nThe Browsable API\n\n\nREST, Hypermedia & HATEOAS\n\n\nThird Party Packages\n\n\nTutorials and Resources\n\n\nContributing to REST framework\n\n\nProject management\n\n\n3.0 Announcement\n\n\n3.1 Announcement\n\n\n3.2 Announcement\n\n\n3.3 Announcement\n\n\n3.4 Announcement\n\n\n3.5 Announcement\n\n\n3.6 Announcement\n\n\n3.7 Announcement\n\n\nKickstarter Announcement\n\n\nMozilla Grant\n\n\nFunding\n\n\nRelease Notes\n\n\nJobs\n\n\n\n\nDevelopment\n\n\nSee the \nContribution guidelines\n for information on how to clone\nthe repository, run the test suite and contribute changes back to REST\nFramework.\n\n\nSupport\n\n\nFor support please see the \nREST framework discussion group\n, try the \n#restframework\n channel on \nirc.freenode.net\n, search \nthe IRC archives\n, or raise a question on \nStack Overflow\n, making sure to include the \n'django-rest-framework'\n tag.\n\n\nFor priority support please sign up for a \nprofessional or premium sponsorship plan\n.\n\n\nFor updates on REST framework development, you may also want to follow \nthe author\n on Twitter.\n\n\nFollow @_tomchristie\n\n\n!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=\"//platform.twitter.com/widgets.js\";fjs.parentNode.insertBefore(js,fjs);}}(document,\"script\",\"twitter-wjs\");\n\n\nSecurity\n\n\nIf you believe you\u2019ve found something in Django REST framework which has security implications, please \ndo not raise the issue in a public forum\n.\n\n\nSend a description of the issue via email to \nrest-framework-security@googlegroups.com\n. The project maintainers will then work with you to resolve any issues where required, prior to any public disclosure.\n\n\nLicense\n\n\nCopyright (c) 2011-2017, Tom Christie\nAll rights reserved.\n\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n\nRedistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\nRedistributions in binary form must reproduce the above copyright notice, this\nlist of conditions and the following disclaimer in the documentation and/or\nother materials provided with the distribution.\n\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.", + "text": ".promo li a {\n float: left;\n width: 130px;\n height: 20px;\n text-align: center;\n margin: 10px 30px;\n padding: 150px 0 0 0;\n background-position: 0 50%;\n background-size: 130px auto;\n background-repeat: no-repeat;\n font-size: 120%;\n color: black;\n}\n.promo li {\n list-style: none;\n}\n\n\n\n\n\n \n\n\n \n\n \n\n \n\n\n \n\n \n\n \n\n\n\n\n\n\n\nNote\n: This is the documentation for the \nversion 3\n of REST framework. Documentation for \nversion 2\n is also available.\n\n\n\n\n\n\nDjango REST Framework\n\n\n\n\n\n\n\n\nDjango REST framework is a powerful and flexible toolkit for building Web APIs.\n\n\nSome reasons you might want to use REST framework:\n\n\n\n\nThe \nWeb browsable API\n is a huge usability win for your developers.\n\n\nAuthentication policies\n including packages for \nOAuth1a\n and \nOAuth2\n.\n\n\nSerialization\n that supports both \nORM\n and \nnon-ORM\n data sources.\n\n\nCustomizable all the way down - just use \nregular function-based views\n if you don't need the \nmore\n \npowerful\n \nfeatures\n.\n\n\nExtensive documentation\n, and \ngreat community support\n.\n\n\nUsed and trusted by internationally recognised companies including \nMozilla\n, \nRed Hat\n, \nHeroku\n, and \nEventbrite\n.\n\n\n\n\n\n\nFunding\n\n\nREST framework is a \ncollaboratively funded project\n. If you use\nREST framework commercially we strongly encourage you to invest in its\ncontinued development by \nsigning up for a paid plan\n.\n\n\nEvery single sign-up helps us make REST framework long-term financially sustainable.\n\n\n\n \nRover.com\n\n \nSentry\n\n \nStream\n\n \nMachinalis\n\n \nRollbar\n\n\n\n\n\n\n\n\nMany thanks to all our \nwonderful sponsors\n, and in particular to our premium backers, \nRover\n, \nSentry\n, \nStream\n, \nMachinalis\n, and \nRollbar\n.\n\n\n\n\nRequirements\n\n\nREST framework requires the following:\n\n\n\n\nPython (2.7, 3.2, 3.3, 3.4, 3.5, 3.6)\n\n\nDjango (1.10, 1.11, 2.0)\n\n\n\n\nThe following packages are optional:\n\n\n\n\ncoreapi\n (1.32.0+) - Schema generation support.\n\n\nMarkdown\n (2.1.0+) - Markdown support for the browsable API.\n\n\ndjango-filter\n (1.0.1+) - Filtering support.\n\n\ndjango-crispy-forms\n - Improved HTML display for filtering.\n\n\ndjango-guardian\n (1.1.1+) - Object level permissions support.\n\n\n\n\nInstallation\n\n\nInstall using \npip\n, including any optional packages you want...\n\n\npip install djangorestframework\npip install markdown # Markdown support for the browsable API.\npip install django-filter # Filtering support\n\n\n\n...or clone the project from github.\n\n\ngit clone git@github.com:encode/django-rest-framework.git\n\n\n\nAdd \n'rest_framework'\n to your \nINSTALLED_APPS\n setting.\n\n\nINSTALLED_APPS = (\n ...\n 'rest_framework',\n)\n\n\n\nIf you're intending to use the browsable API you'll probably also want to add REST framework's login and logout views. Add the following to your root \nurls.py\n file.\n\n\nurlpatterns = [\n ...\n url(r'^api-auth/', include('rest_framework.urls'))\n]\n\n\n\nNote that the URL path can be whatever you want.\n\n\nExample\n\n\nLet's take a look at a quick example of using REST framework to build a simple model-backed API.\n\n\nWe'll create a read-write API for accessing information on the users of our project.\n\n\nAny global settings for a REST framework API are kept in a single configuration dictionary named \nREST_FRAMEWORK\n. Start off by adding the following to your \nsettings.py\n module:\n\n\nREST_FRAMEWORK = {\n # Use Django's standard `django.contrib.auth` permissions,\n # or allow read-only access for unauthenticated users.\n 'DEFAULT_PERMISSION_CLASSES': [\n 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'\n ]\n}\n\n\n\nDon't forget to make sure you've also added \nrest_framework\n to your \nINSTALLED_APPS\n.\n\n\nWe're ready to create our API now.\nHere's our project's root \nurls.py\n module:\n\n\nfrom django.conf.urls import url, include\nfrom django.contrib.auth.models import User\nfrom rest_framework import routers, serializers, viewsets\n\n# Serializers define the API representation.\nclass UserSerializer(serializers.HyperlinkedModelSerializer):\n class Meta:\n model = User\n fields = ('url', 'username', 'email', 'is_staff')\n\n# ViewSets define the view behavior.\nclass UserViewSet(viewsets.ModelViewSet):\n queryset = User.objects.all()\n serializer_class = UserSerializer\n\n# Routers provide an easy way of automatically determining the URL conf.\nrouter = routers.DefaultRouter()\nrouter.register(r'users', UserViewSet)\n\n# Wire up our API using automatic URL routing.\n# Additionally, we include login URLs for the browsable API.\nurlpatterns = [\n url(r'^', include(router.urls)),\n url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))\n]\n\n\n\nYou can now open the API in your browser at \nhttp://127.0.0.1:8000/\n, and view your new 'users' API. If you use the login control in the top right corner you'll also be able to add, create and delete users from the system.\n\n\nQuickstart\n\n\nCan't wait to get started? The \nquickstart guide\n is the fastest way to get up and running, and building APIs with REST framework.\n\n\nTutorial\n\n\nThe tutorial will walk you through the building blocks that make up REST framework. It'll take a little while to get through, but it'll give you a comprehensive understanding of how everything fits together, and is highly recommended reading.\n\n\n\n\n1 - Serialization\n\n\n2 - Requests & Responses\n\n\n3 - Class-based views\n\n\n4 - Authentication & permissions\n\n\n5 - Relationships & hyperlinked APIs\n\n\n6 - Viewsets & routers\n\n\n7 - Schemas & client libraries\n\n\n\n\nThere is a live example API of the finished tutorial API for testing purposes, \navailable here\n.\n\n\nAPI Guide\n\n\nThe API guide is your complete reference manual to all the functionality provided by REST framework.\n\n\n\n\nRequests\n\n\nResponses\n\n\nViews\n\n\nGeneric views\n\n\nViewsets\n\n\nRouters\n\n\nParsers\n\n\nRenderers\n\n\nSerializers\n\n\nSerializer fields\n\n\nSerializer relations\n\n\nValidators\n\n\nAuthentication\n\n\nPermissions\n\n\nThrottling\n\n\nFiltering\n\n\nPagination\n\n\nVersioning\n\n\nContent negotiation\n\n\nMetadata\n\n\nSchemas\n\n\nFormat suffixes\n\n\nReturning URLs\n\n\nExceptions\n\n\nStatus codes\n\n\nTesting\n\n\nSettings\n\n\n\n\nTopics\n\n\nGeneral guides to using REST framework.\n\n\n\n\nDocumenting your API\n\n\nAPI Clients\n\n\nInternationalization\n\n\nAJAX, CSRF & CORS\n\n\nHTML & Forms\n\n\nBrowser enhancements\n\n\nThe Browsable API\n\n\nREST, Hypermedia & HATEOAS\n\n\nThird Party Packages\n\n\nTutorials and Resources\n\n\nContributing to REST framework\n\n\nProject management\n\n\n3.0 Announcement\n\n\n3.1 Announcement\n\n\n3.2 Announcement\n\n\n3.3 Announcement\n\n\n3.4 Announcement\n\n\n3.5 Announcement\n\n\n3.6 Announcement\n\n\n3.7 Announcement\n\n\n3.8 Announcement\n\n\nKickstarter Announcement\n\n\nMozilla Grant\n\n\nFunding\n\n\nRelease Notes\n\n\nJobs\n\n\n\n\nDevelopment\n\n\nSee the \nContribution guidelines\n for information on how to clone\nthe repository, run the test suite and contribute changes back to REST\nFramework.\n\n\nSupport\n\n\nFor support please see the \nREST framework discussion group\n, try the \n#restframework\n channel on \nirc.freenode.net\n, search \nthe IRC archives\n, or raise a question on \nStack Overflow\n, making sure to include the \n'django-rest-framework'\n tag.\n\n\nFor priority support please sign up for a \nprofessional or premium sponsorship plan\n.\n\n\nFor updates on REST framework development, you may also want to follow \nthe author\n on Twitter.\n\n\nFollow @_tomchristie\n\n\n!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=\"//platform.twitter.com/widgets.js\";fjs.parentNode.insertBefore(js,fjs);}}(document,\"script\",\"twitter-wjs\");\n\n\nSecurity\n\n\nIf you believe you\u2019ve found something in Django REST framework which has security implications, please \ndo not raise the issue in a public forum\n.\n\n\nSend a description of the issue via email to \nrest-framework-security@googlegroups.com\n. The project maintainers will then work with you to resolve any issues where required, prior to any public disclosure.\n\n\nLicense\n\n\nCopyright (c) 2011-2017, Tom Christie\nAll rights reserved.\n\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n\nRedistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\nRedistributions in binary form must reproduce the above copyright notice, this\nlist of conditions and the following disclaimer in the documentation and/or\nother materials provided with the distribution.\n\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.", "title": "Home" }, { @@ -42,7 +42,7 @@ }, { "location": "/#topics", - "text": "General guides to using REST framework. Documenting your API API Clients Internationalization AJAX, CSRF & CORS HTML & Forms Browser enhancements The Browsable API REST, Hypermedia & HATEOAS Third Party Packages Tutorials and Resources Contributing to REST framework Project management 3.0 Announcement 3.1 Announcement 3.2 Announcement 3.3 Announcement 3.4 Announcement 3.5 Announcement 3.6 Announcement 3.7 Announcement Kickstarter Announcement Mozilla Grant Funding Release Notes Jobs", + "text": "General guides to using REST framework. Documenting your API API Clients Internationalization AJAX, CSRF & CORS HTML & Forms Browser enhancements The Browsable API REST, Hypermedia & HATEOAS Third Party Packages Tutorials and Resources Contributing to REST framework Project management 3.0 Announcement 3.1 Announcement 3.2 Announcement 3.3 Announcement 3.4 Announcement 3.5 Announcement 3.6 Announcement 3.7 Announcement 3.8 Announcement Kickstarter Announcement Mozilla Grant Funding Release Notes Jobs", "title": "Topics" }, { @@ -5600,6 +5600,56 @@ "text": "We're still planning to work on improving real-time support for REST framework by providing documentation on integrating with Django channels, as well adding support for more easily adding WebSocket support to existing HTTP endpoints. This will likely be timed so that any REST framework development here ties in with similar work on API Star .", "title": "What's next" }, + { + "location": "/topics/3.8-announcement/", + "text": ".promo li a {\n float: left;\n width: 130px;\n height: 20px;\n text-align: center;\n margin: 10px 30px;\n padding: 150px 0 0 0;\n background-position: 0 50%;\n background-size: 130px auto;\n background-repeat: no-repeat;\n font-size: 120%;\n color: black;\n}\n.promo li {\n list-style: none;\n}\n\n\n\n\nDjango REST framework 3.8\n\n\nThe 3.8 release is a maintenance focused release resolving a large number of previously outstanding issues and laying\nthe foundations for future changes.\n\n\n\n\nFunding\n\n\nIf you use REST framework commercially and would like to see this work continue, we strongly encourage you to invest in its continued development by\n\nsigning up for a paid\u00a0plan\n.\n\n\nWe'd like to say thanks in particular our premium backers, \nRover\n, \nSentry\n, \nStream\n, \nMachinalis\n, and \nRollbar\n.\n\n\n\n\nBreaking Changes\n\n\ndefault\n on Field.\nAltered the behaviour of \nread_only\n plus \n\n\n#5886\n \nread_only\n fields will now \nalways\n be excluded from writable fields.\n\n\nPreviously \nread_only\n fields when combined with a \ndefault\n value would use the \ndefault\n for create and update\noperations. This was counter-intuitive in some circumstances and led to difficulties supporting dotted \nsource\n\nattributes on nullable relations.\n\n\nIn order to maintain the old behaviour you may need to pass the value of \nread_only\n fields when calling \nsave()\n in\nthe view:\n\n\ndef perform_create(self, serializer):\n serializer.save(owner=self.request.user)\n\n\n\nAlternatively you may override \nsave()\n or \ncreate()\n or \nupdate()\n on the serialiser as appropriate.\n\n\n\n\nDeprecations\n\n\nlist_route\n and \naction\n decorator replaces \ndetail_route\n\n\n#5705\n \nlist_route\n and \ndetail_route\n have been merge into a single \naction\n decorator. This improves viewset action introspection, and will allow extra actions to be displayed in the Browsable API in future versions.\n\n\nBoth \nlist_route\n and \ndetail_route\n are now pending deprecation. They will be deprecated in 3.9 and removed entirely\nin 3.10.\n\n\nThe new \naction\n decorator takes a boolean \ndetail\n argument.\n\n\n\n\nReplace \ndetail_route\n uses with \n@action(detail=True)\n.\n\n\nReplace \nlist_route\n uses with \n@action(detail=False)\n.\n\n\n\n\nexclude_from_schema\n\n\nBoth \nAPIView.exclude_from_schema\n and the \nexclude_from_schema\n argument to the \n@api_view\n decorator are now deprecated. They will be removed entirely in 3.9.\n\n\nFor \nAPIView\n you should instead set a \nschema = None\n attribute on the view class.\n\n\nFor function based views the \n@schema\n decorator can be used to exclude the view from the schema, by using \n@schema(None)\n.\n\n\n\n\nMinor fixes and improvements\n\n\nThere are a large number of minor fixes and improvements in this release. See the \nrelease notes\n page\nfor a complete listing.\n\n\nWhat's next\n\n\nWe're currently working towards moving to using \nOpenAPI\n as our default schema output. We'll also be revisiting our API documentation generation and client libraries.\n\n\nWe're doing some consolidation in order to make this happen. It's planned that 3.9 will drop the \ncoreapi\n and \ncoreschema\n libraries, and instead use \napistar\n for the API documentation generation, schema generation, and API client libraries.", + "title": "3.8 Announcement" + }, + { + "location": "/topics/3.8-announcement/#django-rest-framework-38", + "text": "The 3.8 release is a maintenance focused release resolving a large number of previously outstanding issues and laying\nthe foundations for future changes.", + "title": "Django REST framework 3.8" + }, + { + "location": "/topics/3.8-announcement/#funding", + "text": "If you use REST framework commercially and would like to see this work continue, we strongly encourage you to invest in its continued development by signing up for a paid\u00a0plan . We'd like to say thanks in particular our premium backers, Rover , Sentry , Stream , Machinalis , and Rollbar .", + "title": "Funding" + }, + { + "location": "/topics/3.8-announcement/#breaking-changes", + "text": "", + "title": "Breaking Changes" + }, + { + "location": "/topics/3.8-announcement/#altered-the-behaviour-of-read_only-plus-default-on-field", + "text": "#5886 read_only fields will now always be excluded from writable fields. Previously read_only fields when combined with a default value would use the default for create and update\noperations. This was counter-intuitive in some circumstances and led to difficulties supporting dotted source \nattributes on nullable relations. In order to maintain the old behaviour you may need to pass the value of read_only fields when calling save() in\nthe view: def perform_create(self, serializer):\n serializer.save(owner=self.request.user) Alternatively you may override save() or create() or update() on the serialiser as appropriate.", + "title": "Altered the behaviour of read_only plus default on Field." + }, + { + "location": "/topics/3.8-announcement/#deprecations", + "text": "", + "title": "Deprecations" + }, + { + "location": "/topics/3.8-announcement/#action-decorator-replaces-list_route-and-detail_route", + "text": "#5705 list_route and detail_route have been merge into a single action decorator. This improves viewset action introspection, and will allow extra actions to be displayed in the Browsable API in future versions. Both list_route and detail_route are now pending deprecation. They will be deprecated in 3.9 and removed entirely\nin 3.10. The new action decorator takes a boolean detail argument. Replace detail_route uses with @action(detail=True) . Replace list_route uses with @action(detail=False) .", + "title": "action decorator replaces list_route and detail_route" + }, + { + "location": "/topics/3.8-announcement/#exclude_from_schema", + "text": "Both APIView.exclude_from_schema and the exclude_from_schema argument to the @api_view decorator are now deprecated. They will be removed entirely in 3.9. For APIView you should instead set a schema = None attribute on the view class. For function based views the @schema decorator can be used to exclude the view from the schema, by using @schema(None) .", + "title": "exclude_from_schema" + }, + { + "location": "/topics/3.8-announcement/#minor-fixes-and-improvements", + "text": "There are a large number of minor fixes and improvements in this release. See the release notes page\nfor a complete listing.", + "title": "Minor fixes and improvements" + }, + { + "location": "/topics/3.8-announcement/#whats-next", + "text": "We're currently working towards moving to using OpenAPI as our default schema output. We'll also be revisiting our API documentation generation and client libraries. We're doing some consolidation in order to make this happen. It's planned that 3.9 will drop the coreapi and coreschema libraries, and instead use apistar for the API documentation generation, schema generation, and API client libraries.", + "title": "What's next" + }, { "location": "/topics/kickstarter-announcement/", "text": "Kickstarting Django REST framework 3\n\n\n\n\n \n\n\n\n\n\nIn order to continue to drive the project forward, I'm launching a Kickstarter campaign to help fund the development of a major new release - Django REST framework 3.\n\n\nProject details\n\n\nThis new release will allow us to comprehensively address some of the shortcomings of the framework, and will aim to include the following:\n\n\n\n\nFaster, simpler and easier-to-use serializers.\n\n\nAn alternative admin-style interface for the browsable API.\n\n\nSearch and filtering controls made accessible in the browsable API.\n\n\nAlternative API pagination styles.\n\n\nDocumentation around API versioning.\n\n\nTriage of outstanding tickets.\n\n\nImproving the ongoing quality and maintainability of the project.\n\n\n\n\nFull details are available now on the \nproject page\n.\n\n\nIf you're interested in helping make sustainable open source development a reality please \nvisit the Kickstarter page\n and consider funding the project.\n\n\nI can't wait to see where this takes us!\n\n\nMany thanks to everyone for your support so far,\n\n\nTom Christie :)\n\n\n\n\nSponsors\n\n\nWe've now blazed way past all our goals, with a staggering \u00a330,000 (~$50,000), meaning I'll be in a position to work on the project significantly beyond what we'd originally planned for. I owe a huge debt of gratitude to all the wonderful companies and individuals who have been backing the project so generously, and making this possible.\n\n\n\n\nPlatinum sponsors\n\n\nOur platinum sponsors have each made a hugely substantial contribution to the future development of Django REST framework, and I simply can't thank them enough.\n\n\n\n\nEventbrite\n\n\n\n\n\n\n\nDivio\n\n\nLulu\n\n\nPotato\n\n\nWiredrive\n\n\nCyan\n\n\nRunscope\n\n\nSimple Energy\n\n\nVOKAL Interactive\n\n\nPurple Bit\n\n\nKuwaitNET\n\n\n\n\n\n\n\n\n\n\nGold sponsors\n\n\nOur gold sponsors include companies large and small. Many thanks for their significant funding of the project and their commitment to sustainable open-source development.\n\n\n\n\nLaterPay\n\n\nSchuberg Philis\n\n\nProReNata AB\n\n\nSGA Websites\n\n\nSirono\n\n\nVinta Software Studio\n\n\nRapasso\n\n\nMirus Research\n\n\nHipo\n\n\nByte\n\n\nLightning Kite\n\n\nOpbeat\n\n\nKoordinates\n\n\nPulsecode Inc.\n\n\nSinging Horse Studio Ltd.\n\n\nHeroku\n\n\nRheinwerk Verlag\n\n\nSecurity Compass\n\n\nDjango Software Foundation\n\n\nHipflask\n\n\nCrate\n\n\nCryptico Corp\n\n\nNextHub\n\n\nCompile\n\n\nWusaWork\n\n\nEnvision Linux\n\n\n\n\n\n\n\n\n\n\nSilver sponsors\n\n\nThe serious financial contribution that our silver sponsors have made is very much appreciated. I'd like to say a particular thank\u00a0you to individuals who have chosen to privately support the project at this level.\n\n\n\n\nIMT Computer Services\n\n\nWildfish\n\n\nThermondo GmbH\n\n\nProvidenz\n\n\nalwaysdata.com\n\n\nTriggered Messaging\n\n\nPushPull Technology Ltd\n\n\nTranscode\n\n\nGarfo\n\n\nShippo\n\n\nGizmag\n\n\nTivix\n\n\nSafari\n\n\nBright Loop\n\n\nABA Systems\n\n\nbeefarm.ru\n\n\nVzzual.com\n\n\nInfinite Code\n\n\nCrossword Tracker\n\n\nPkgFarm\n\n\nLife. The Game.\n\n\nBlimp\n\n\nPathwright\n\n\nFluxility\n\n\nTeonite\n\n\nTrackMaven\n\n\nPhurba\n\n\nNephila\n\n\nAditium\n\n\nOpenEye Scientific Software\n\n\nHolvi\n\n\nCantemo\n\n\nMakeSpace\n\n\nAX Semantics\n\n\nISL\n\n\n\n\n\n\n\n\nIndividual backers\n: Paul Hallett, \nPaul Whipp\n, Dylan Roy, Jannis Leidel, \nXavier Ordoquy\n, \nJohannes Spielmann\n, \nRob Spectre\n, \nChris Heisel\n, Marwan Alsabbagh, Haris Ali, Tuomas Toivonen.\n\n\n\n\nAdvocates\n\n\nThe following individuals made a significant financial contribution to the development of Django REST framework 3, for which I can only offer a huge, warm and sincere thank you!\n\n\nIndividual backers\n: Jure Cuhalev, Kevin Brolly, Ferenc Szalai, Dougal Matthews, Stefan Foulis, Carlos Hernando, Alen Mujezinovic, Ross Crawford-d'Heureuse, George Kappel, Alasdair Nicol, John Carr, Steve Winton, Trey, Manuel Miranda, David Horn, Vince Mi, Daniel Sears, Jamie Matthews, Ryan Currah, Marty Kemka, Scott Nixon, Moshin Elahi, Kevin Campbell, Jose Antonio Leiva Izquierdo, Kevin Stone, Andrew Godwin, Tijs Teulings, Roger Boardman, Xavier Antoviaque, Darian Moody, Lujeni, Jon Dugan, Wiley Kestner, Daniel C. Silverstein, Daniel Hahler, Subodh Nijsure, Philipp Weidenhiller, Yusuke Muraoka, Danny Roa, Reto Aebersold, Kyle Getrost, D\u00e9c\u00e9bal Hormuz, James Dacosta, Matt Long, Mauro Rocco, Tyrel Souza, Ryan Campbell, Ville Jyrkk\u00e4, Charalampos Papaloizou, Nikolai R\u00f8ed Kristiansen, Antoni Aloy L\u00f3pez, Celia Oakley, Micha\u0142 Krawczak, Ivan VenOsdel, Tim Watts, Martin Warne, Nicola Jordan, Ryan Kaskel.\n\n\nCorporate backers\n: Savannah Informatics, Prism Skylabs, Musical Operating Devices.\n\n\n\n\nSupporters\n\n\nThere were also almost 300 further individuals choosing to help fund the project at other levels or choosing to give anonymously. Again, thank you, thank you, thank you!", diff --git a/sitemap.xml b/sitemap.xml index b5b9cc299..c704fd635 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -355,6 +355,12 @@ daily + + http://www.django-rest-framework.org//topics/3.8-announcement/ + 2018-04-03 + daily + + http://www.django-rest-framework.org//topics/kickstarter-announcement/ 2018-04-03 diff --git a/topics/3.0-announcement/index.html b/topics/3.0-announcement/index.html index 6e9373792..89fda9050 100644 --- a/topics/3.0-announcement/index.html +++ b/topics/3.0-announcement/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/topics/3.1-announcement/index.html b/topics/3.1-announcement/index.html index de7477e3e..67eb50228 100644 --- a/topics/3.1-announcement/index.html +++ b/topics/3.1-announcement/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/topics/3.2-announcement/index.html b/topics/3.2-announcement/index.html index afdfe98a6..0382eaade 100644 --- a/topics/3.2-announcement/index.html +++ b/topics/3.2-announcement/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/topics/3.3-announcement/index.html b/topics/3.3-announcement/index.html index 34015bdfb..194436316 100644 --- a/topics/3.3-announcement/index.html +++ b/topics/3.3-announcement/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/topics/3.4-announcement/index.html b/topics/3.4-announcement/index.html index 2af7b3a10..1274f883a 100644 --- a/topics/3.4-announcement/index.html +++ b/topics/3.4-announcement/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/topics/3.5-announcement/index.html b/topics/3.5-announcement/index.html index 360fe5086..f986e3ca4 100644 --- a/topics/3.5-announcement/index.html +++ b/topics/3.5-announcement/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/topics/3.6-announcement/index.html b/topics/3.6-announcement/index.html index 794f756f5..e375966fe 100644 --- a/topics/3.6-announcement/index.html +++ b/topics/3.6-announcement/index.html @@ -322,6 +322,10 @@ 3.7 Announcement +
  • + 3.8 Announcement +
  • +
  • Kickstarter Announcement
  • diff --git a/topics/3.7-announcement/index.html b/topics/3.7-announcement/index.html index 130cf880e..1a0593556 100644 --- a/topics/3.7-announcement/index.html +++ b/topics/3.7-announcement/index.html @@ -58,7 +58,7 @@