Commit 2676948d by Tom Christie

Update documentation

parent ebab87c6
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,14 +322,7 @@ ...@@ -324,14 +322,7 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
...@@ -339,8 +330,6 @@ ...@@ -339,8 +330,6 @@
</ul> </ul>
</div> </div>
...@@ -349,24 +338,18 @@ ...@@ -349,24 +338,18 @@
<div id="main-content" class="span9"> <div id="main-content" class="span9">
<h1 id="404-page-not-found" style="text-align: center">404</h1> <h1 id="404-page-not-found" style="text-align: center">404</h1>
<p style="text-align: center"><strong>Page not found</strong></p> <p style="text-align: center"><strong>Page not found</strong></p>
<p style="text-align: center">Try the <a href="http://www.django-rest-framework.org/">homepage</a>, or <a href="#searchModal" data-toggle="modal">search the documentation</a>.</p> <p style="text-align: center">Try the <a href="http://www.django-rest-framework.org/">homepage</a>, or <a href="#searchModal" data-toggle="modal">search the documentation</a>.</p>
</div> </div> <!--/span-->
<!--/span--> </div> <!--/row-->
</div> </div> <!--/.fluid-container-->
<!--/row--> </div> <!--/.body content-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -384,10 +367,10 @@ ...@@ -384,10 +367,10 @@
<script src="./js/theme.js"></script> <script src="./js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -395,12 +378,12 @@ ...@@ -395,12 +378,12 @@
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#authentication">Authentication</a> <a href="#authentication">Authentication</a>
</li> </li>
...@@ -361,8 +350,6 @@ ...@@ -361,8 +350,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-reference">API Reference</a> <a href="#api-reference">API Reference</a>
</li> </li>
...@@ -381,8 +368,6 @@ ...@@ -381,8 +368,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-authentication">Custom authentication</a> <a href="#custom-authentication">Custom authentication</a>
</li> </li>
...@@ -393,8 +378,6 @@ ...@@ -393,8 +378,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#third-party-packages">Third party packages</a> <a href="#third-party-packages">Third party packages</a>
</li> </li>
...@@ -439,8 +422,6 @@ ...@@ -439,8 +422,6 @@
</ul> </ul>
</div> </div>
...@@ -450,8 +431,6 @@ ...@@ -450,8 +431,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/authentication.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/authentication.py">
<span class="label label-info">authentication.py</span> <span class="label label-info">authentication.py</span>
</a> </a>
...@@ -715,18 +694,12 @@ REST_FRAMEWORK = { ...@@ -715,18 +694,12 @@ REST_FRAMEWORK = {
<p><a href="https://github.com/Tivix/django-rest-auth">Django-rest-auth</a> library provides a set of REST API endpoints for registration, authentication (including social media authentication), password reset, retrieve and update user details, etc. By having these API endpoints, your client apps such as AngularJS, iOS, Android, and others can communicate to your Django backend site independently via REST APIs for user management.</p> <p><a href="https://github.com/Tivix/django-rest-auth">Django-rest-auth</a> library provides a set of REST API endpoints for registration, authentication (including social media authentication), password reset, retrieve and update user details, etc. By having these API endpoints, your client apps such as AngularJS, iOS, Android, and others can communicate to your Django backend site independently via REST APIs for user management.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -744,10 +717,10 @@ REST_FRAMEWORK = { ...@@ -744,10 +717,10 @@ REST_FRAMEWORK = {
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -755,12 +728,12 @@ REST_FRAMEWORK = { ...@@ -755,12 +728,12 @@ REST_FRAMEWORK = {
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#content-negotiation">Content negotiation</a> <a href="#content-negotiation">Content negotiation</a>
</li> </li>
...@@ -349,8 +338,6 @@ ...@@ -349,8 +338,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-content-negotiation">Custom content negotiation</a> <a href="#custom-content-negotiation">Custom content negotiation</a>
</li> </li>
...@@ -367,8 +354,6 @@ ...@@ -367,8 +354,6 @@
</ul> </ul>
</div> </div>
...@@ -378,8 +363,6 @@ ...@@ -378,8 +363,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/negotiation.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/negotiation.py">
<span class="label label-info">negotiation.py</span> <span class="label label-info">negotiation.py</span>
</a> </a>
...@@ -460,18 +443,12 @@ class NoNegotiationView(APIView): ...@@ -460,18 +443,12 @@ class NoNegotiationView(APIView):
</code></pre> </code></pre>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -489,10 +466,10 @@ class NoNegotiationView(APIView): ...@@ -489,10 +466,10 @@ class NoNegotiationView(APIView):
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -500,12 +477,12 @@ class NoNegotiationView(APIView): ...@@ -500,12 +477,12 @@ class NoNegotiationView(APIView):
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#exceptions">Exceptions</a> <a href="#exceptions">Exceptions</a>
</li> </li>
...@@ -353,8 +342,6 @@ ...@@ -353,8 +342,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-reference">API Reference</a> <a href="#api-reference">API Reference</a>
</li> </li>
...@@ -407,8 +394,6 @@ ...@@ -407,8 +394,6 @@
</ul> </ul>
</div> </div>
...@@ -418,8 +403,6 @@ ...@@ -418,8 +403,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/exceptions.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/exceptions.py">
<span class="label label-info">exceptions.py</span> <span class="label label-info">exceptions.py</span>
</a> </a>
...@@ -560,18 +543,12 @@ class ServiceUnavailable(APIException): ...@@ -560,18 +543,12 @@ class ServiceUnavailable(APIException):
<p>By default this exception results in a response with the HTTP status code "400 Bad Request".</p> <p>By default this exception results in a response with the HTTP status code "400 Bad Request".</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -589,10 +566,10 @@ class ServiceUnavailable(APIException): ...@@ -589,10 +566,10 @@ class ServiceUnavailable(APIException):
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -600,12 +577,12 @@ class ServiceUnavailable(APIException): ...@@ -600,12 +577,12 @@ class ServiceUnavailable(APIException):
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#serializer-fields">Serializer fields</a> <a href="#serializer-fields">Serializer fields</a>
</li> </li>
...@@ -349,8 +338,6 @@ ...@@ -349,8 +338,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#boolean-fields">Boolean fields</a> <a href="#boolean-fields">Boolean fields</a>
</li> </li>
...@@ -365,8 +352,6 @@ ...@@ -365,8 +352,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#string-fields">String fields</a> <a href="#string-fields">String fields</a>
</li> </li>
...@@ -401,8 +386,6 @@ ...@@ -401,8 +386,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#numeric-fields">Numeric fields</a> <a href="#numeric-fields">Numeric fields</a>
</li> </li>
...@@ -421,8 +404,6 @@ ...@@ -421,8 +404,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#date-and-time-fields">Date and time fields</a> <a href="#date-and-time-fields">Date and time fields</a>
</li> </li>
...@@ -445,8 +426,6 @@ ...@@ -445,8 +426,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#choice-selection-fields">Choice selection fields</a> <a href="#choice-selection-fields">Choice selection fields</a>
</li> </li>
...@@ -461,8 +440,6 @@ ...@@ -461,8 +440,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#file-upload-fields">File upload fields</a> <a href="#file-upload-fields">File upload fields</a>
</li> </li>
...@@ -481,8 +458,6 @@ ...@@ -481,8 +458,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#composite-fields">Composite fields</a> <a href="#composite-fields">Composite fields</a>
</li> </li>
...@@ -497,8 +472,6 @@ ...@@ -497,8 +472,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#miscellaneous-fields">Miscellaneous fields</a> <a href="#miscellaneous-fields">Miscellaneous fields</a>
</li> </li>
...@@ -521,8 +494,6 @@ ...@@ -521,8 +494,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-fields">Custom fields</a> <a href="#custom-fields">Custom fields</a>
</li> </li>
...@@ -533,8 +504,6 @@ ...@@ -533,8 +504,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#third-party-packages">Third party packages</a> <a href="#third-party-packages">Third party packages</a>
</li> </li>
...@@ -563,8 +532,6 @@ ...@@ -563,8 +532,6 @@
</ul> </ul>
</div> </div>
...@@ -574,8 +541,6 @@ ...@@ -574,8 +541,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/fields.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/fields.py">
<span class="label label-info">fields.py</span> <span class="label label-info">fields.py</span>
</a> </a>
...@@ -1012,18 +977,12 @@ def to_internal_value(self, data): ...@@ -1012,18 +977,12 @@ def to_internal_value(self, data):
<p>The <a href="https://github.com/djangonauts/django-rest-framework-hstore">django-rest-framework-hstore</a> package provides an <code>HStoreField</code> to support <a href="https://github.com/djangonauts/django-hstore">django-hstore</a> <code>DictionaryField</code> model field.</p> <p>The <a href="https://github.com/djangonauts/django-rest-framework-hstore">django-rest-framework-hstore</a> package provides an <code>HStoreField</code> to support <a href="https://github.com/djangonauts/django-hstore">django-hstore</a> <code>DictionaryField</code> model field.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -1041,10 +1000,10 @@ def to_internal_value(self, data): ...@@ -1041,10 +1000,10 @@ def to_internal_value(self, data):
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -1052,12 +1011,12 @@ def to_internal_value(self, data): ...@@ -1052,12 +1011,12 @@ def to_internal_value(self, data):
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#filtering">Filtering</a> <a href="#filtering">Filtering</a>
</li> </li>
...@@ -357,8 +346,6 @@ ...@@ -357,8 +346,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#generic-filtering">Generic Filtering</a> <a href="#generic-filtering">Generic Filtering</a>
</li> </li>
...@@ -377,8 +364,6 @@ ...@@ -377,8 +364,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-guide">API Guide</a> <a href="#api-guide">API Guide</a>
</li> </li>
...@@ -401,8 +386,6 @@ ...@@ -401,8 +386,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-generic-filtering">Custom generic filtering</a> <a href="#custom-generic-filtering">Custom generic filtering</a>
</li> </li>
...@@ -413,8 +396,6 @@ ...@@ -413,8 +396,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#third-party-packages">Third party packages</a> <a href="#third-party-packages">Third party packages</a>
</li> </li>
...@@ -431,8 +412,6 @@ ...@@ -431,8 +412,6 @@
</ul> </ul>
</div> </div>
...@@ -442,8 +421,6 @@ ...@@ -442,8 +421,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/filters.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/filters.py">
<span class="label label-info">filters.py</span> <span class="label label-info">filters.py</span>
</a> </a>
...@@ -564,6 +541,7 @@ class UserListView(generics.ListAPIView): ...@@ -564,6 +541,7 @@ class UserListView(generics.ListAPIView):
<pre><code>class ProductList(generics.ListAPIView): <pre><code>class ProductList(generics.ListAPIView):
queryset = Product.objects.all() queryset = Product.objects.all()
serializer_class = ProductSerializer serializer_class = ProductSerializer
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('category', 'in_stock') filter_fields = ('category', 'in_stock')
</code></pre> </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> <p>This will automatically create a <code>FilterSet</code> class for the given fields, and will allow you to make requests such as:</p>
...@@ -586,6 +564,7 @@ class ProductFilter(django_filters.FilterSet): ...@@ -586,6 +564,7 @@ class ProductFilter(django_filters.FilterSet):
class ProductList(generics.ListAPIView): class ProductList(generics.ListAPIView):
queryset = Product.objects.all() queryset = Product.objects.all()
serializer_class = ProductSerializer serializer_class = ProductSerializer
filter_backends = (filters.DjangoFilterBackend,)
filter_class = ProductFilter filter_class = ProductFilter
</code></pre> </code></pre>
<p>Which will allow you to make requests such as:</p> <p>Which will allow you to make requests such as:</p>
...@@ -757,18 +736,12 @@ class ProductFilter(django_filters.FilterSet): ...@@ -757,18 +736,12 @@ class ProductFilter(django_filters.FilterSet):
<p>The <a href="https://github.com/trollknurr/django-rest-framework-word-search-filter">djangorestframework-word-filter</a> developed as alternative to <code>filters.SearchFilter</code> which will search full word in text, or exact match.</p> <p>The <a href="https://github.com/trollknurr/django-rest-framework-word-search-filter">djangorestframework-word-filter</a> developed as alternative to <code>filters.SearchFilter</code> which will search full word in text, or exact match.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -786,10 +759,10 @@ class ProductFilter(django_filters.FilterSet): ...@@ -786,10 +759,10 @@ class ProductFilter(django_filters.FilterSet):
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -797,12 +770,12 @@ class ProductFilter(django_filters.FilterSet): ...@@ -797,12 +770,12 @@ class ProductFilter(django_filters.FilterSet):
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#format-suffixes">Format suffixes</a> <a href="#format-suffixes">Format suffixes</a>
</li> </li>
...@@ -355,8 +344,6 @@ ...@@ -355,8 +344,6 @@
</ul> </ul>
</div> </div>
...@@ -366,8 +353,6 @@ ...@@ -366,8 +353,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/urlpatterns.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/urlpatterns.py">
<span class="label label-info">urlpatterns.py</span> <span class="label label-info">urlpatterns.py</span>
</a> </a>
...@@ -436,18 +421,12 @@ urlpatterns = i18n_patterns( ...@@ -436,18 +421,12 @@ urlpatterns = i18n_patterns(
<p>The quote does not mention Accept headers, but it does make it clear that format suffixes should be considered an acceptable pattern.</p> <p>The quote does not mention Accept headers, but it does make it clear that format suffixes should be considered an acceptable pattern.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -465,10 +444,10 @@ urlpatterns = i18n_patterns( ...@@ -465,10 +444,10 @@ urlpatterns = i18n_patterns(
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -476,12 +455,12 @@ urlpatterns = i18n_patterns( ...@@ -476,12 +455,12 @@ urlpatterns = i18n_patterns(
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#generic-views">Generic views</a> <a href="#generic-views">Generic views</a>
</li> </li>
...@@ -349,8 +338,6 @@ ...@@ -349,8 +338,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-reference">API Reference</a> <a href="#api-reference">API Reference</a>
</li> </li>
...@@ -361,8 +348,6 @@ ...@@ -361,8 +348,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#mixins">Mixins</a> <a href="#mixins">Mixins</a>
</li> </li>
...@@ -389,8 +374,6 @@ ...@@ -389,8 +374,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#concrete-view-classes">Concrete View Classes</a> <a href="#concrete-view-classes">Concrete View Classes</a>
</li> </li>
...@@ -433,8 +416,6 @@ ...@@ -433,8 +416,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#customizing-the-generic-views">Customizing the generic views</a> <a href="#customizing-the-generic-views">Customizing the generic views</a>
</li> </li>
...@@ -449,16 +430,12 @@ ...@@ -449,16 +430,12 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#put-as-create">PUT as create</a> <a href="#put-as-create">PUT as create</a>
</li> </li>
<li class="main"> <li class="main">
<a href="#third-party-packages">Third party packages</a> <a href="#third-party-packages">Third party packages</a>
</li> </li>
...@@ -471,8 +448,6 @@ ...@@ -471,8 +448,6 @@
</ul> </ul>
</div> </div>
...@@ -482,8 +457,6 @@ ...@@ -482,8 +457,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/mixins.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/mixins.py">
<span class="label label-info">mixins.py</span> <span class="label label-info">mixins.py</span>
</a> </a>
...@@ -588,17 +561,21 @@ class UserList(generics.ListCreateAPIView): ...@@ -588,17 +561,21 @@ class UserList(generics.ListCreateAPIView):
return obj return obj
</code></pre> </code></pre>
<p>Note that if your API doesn't include any object level permissions, you may optionally exclude the <code>self.check_object_permissions</code>, and simply return the object from the <code>get_object_or_404</code> lookup.</p> <p>Note that if your API doesn't include any object level permissions, you may optionally exclude the <code>self.check_object_permissions</code>, and simply return the object from the <code>get_object_or_404</code> lookup.</p>
<h4 id="get_filter_backendsself"><code>get_filter_backends(self)</code></h4> <h4 id="filter_querysetself-queryset"><code>filter_queryset(self, queryset)</code></h4>
<p>Returns the classes that should be used to filter the queryset. Defaults to returning the <code>filter_backends</code> attribute.</p> <p>Given a queryset, filter it with whichever filter backends are in use, returning a new queryset. </p>
<p>May be overridden to provide more complex behavior with filters, such as using different (or even exclusive) lists of filter_backends depending on different criteria.</p> <p>For example: </p>
<p>For example:</p> <pre><code>def filter_queryset(self, queryset):
<pre><code>def get_filter_backends(self): filter_backends = (CategoryFilter,)
if "geo_route" in self.request.query_params:
return (GeoRouteFilter, CategoryFilter) if 'geo_route' in self.request.query_params:
elif "geo_point" in self.request.query_params: filter_backends = (GeoRouteFilter, CategoryFilter)
return (GeoPointFilter, CategoryFilter) elif 'geo_point' in self.request.query_params:
filter_backends = (GeoPointFilter, CategoryFilter)
return (CategoryFilter,) for backend in list(filter_backends):
queryset = backend().filter_queryset(self.request, queryset, view=self)
return queryset
</code></pre> </code></pre>
<h4 id="get_serializer_classself"><code>get_serializer_class(self)</code></h4> <h4 id="get_serializer_classself"><code>get_serializer_class(self)</code></h4>
<p>Returns the class that should be used for the serializer. Defaults to returning the <code>serializer_class</code> attribute.</p> <p>Returns the class that should be used for the serializer. Defaults to returning the <code>serializer_class</code> attribute.</p>
...@@ -756,18 +733,12 @@ class BaseRetrieveUpdateDestroyView(MultipleFieldLookupMixin, ...@@ -756,18 +733,12 @@ class BaseRetrieveUpdateDestroyView(MultipleFieldLookupMixin,
<p>The <a href="https://github.com/miki725/django-rest-framework-bulk">django-rest-framework-bulk package</a> implements generic view mixins as well as some common concrete generic views to allow to apply bulk operations via API requests.</p> <p>The <a href="https://github.com/miki725/django-rest-framework-bulk">django-rest-framework-bulk package</a> implements generic view mixins as well as some common concrete generic views to allow to apply bulk operations via API requests.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -785,10 +756,10 @@ class BaseRetrieveUpdateDestroyView(MultipleFieldLookupMixin, ...@@ -785,10 +756,10 @@ class BaseRetrieveUpdateDestroyView(MultipleFieldLookupMixin,
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -796,12 +767,12 @@ class BaseRetrieveUpdateDestroyView(MultipleFieldLookupMixin, ...@@ -796,12 +767,12 @@ class BaseRetrieveUpdateDestroyView(MultipleFieldLookupMixin,
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#metadata">Metadata</a> <a href="#metadata">Metadata</a>
</li> </li>
...@@ -353,8 +342,6 @@ ...@@ -353,8 +342,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-metadata-classes">Custom metadata classes</a> <a href="#custom-metadata-classes">Custom metadata classes</a>
</li> </li>
...@@ -367,8 +354,6 @@ ...@@ -367,8 +354,6 @@
</ul> </ul>
</div> </div>
...@@ -378,8 +363,6 @@ ...@@ -378,8 +363,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/metadata.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/metadata.py">
<span class="label label-info">metadata.py</span> <span class="label label-info">metadata.py</span>
</a> </a>
...@@ -468,18 +451,12 @@ def schema(self, request): ...@@ -468,18 +451,12 @@ def schema(self, request):
</code></pre> </code></pre>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -497,10 +474,10 @@ def schema(self, request): ...@@ -497,10 +474,10 @@ def schema(self, request):
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -508,12 +485,12 @@ def schema(self, request): ...@@ -508,12 +485,12 @@ def schema(self, request):
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#pagination">Pagination</a> <a href="#pagination">Pagination</a>
</li> </li>
...@@ -353,8 +342,6 @@ ...@@ -353,8 +342,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-reference">API Reference</a> <a href="#api-reference">API Reference</a>
</li> </li>
...@@ -373,8 +360,6 @@ ...@@ -373,8 +360,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-pagination-styles">Custom pagination styles</a> <a href="#custom-pagination-styles">Custom pagination styles</a>
</li> </li>
...@@ -393,8 +378,6 @@ ...@@ -393,8 +378,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#html-pagination-controls">HTML pagination controls</a> <a href="#html-pagination-controls">HTML pagination controls</a>
</li> </li>
...@@ -405,8 +388,6 @@ ...@@ -405,8 +388,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#third-party-packages">Third party packages</a> <a href="#third-party-packages">Third party packages</a>
</li> </li>
...@@ -419,8 +400,6 @@ ...@@ -419,8 +400,6 @@
</ul> </ul>
</div> </div>
...@@ -430,8 +409,6 @@ ...@@ -430,8 +409,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/pagination.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/pagination.py">
<span class="label label-info">pagination.py</span> <span class="label label-info">pagination.py</span>
</a> </a>
...@@ -673,18 +650,12 @@ class StandardResultsSetPagination(PageNumberPagination): ...@@ -673,18 +650,12 @@ class StandardResultsSetPagination(PageNumberPagination):
<p>The <a href="http://chibisov.github.io/drf-extensions/docs/"><code>DRF-extensions</code> package</a> includes a <a href="http://chibisov.github.io/drf-extensions/docs/#paginatebymaxmixin"><code>PaginateByMaxMixin</code> mixin class</a> that allows your API clients to specify <code>?page_size=max</code> to obtain the maximum allowed page size.</p> <p>The <a href="http://chibisov.github.io/drf-extensions/docs/"><code>DRF-extensions</code> package</a> includes a <a href="http://chibisov.github.io/drf-extensions/docs/#paginatebymaxmixin"><code>PaginateByMaxMixin</code> mixin class</a> that allows your API clients to specify <code>?page_size=max</code> to obtain the maximum allowed page size.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -702,10 +673,10 @@ class StandardResultsSetPagination(PageNumberPagination): ...@@ -702,10 +673,10 @@ class StandardResultsSetPagination(PageNumberPagination):
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -713,12 +684,12 @@ class StandardResultsSetPagination(PageNumberPagination): ...@@ -713,12 +684,12 @@ class StandardResultsSetPagination(PageNumberPagination):
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#parsers">Parsers</a> <a href="#parsers">Parsers</a>
</li> </li>
...@@ -353,8 +342,6 @@ ...@@ -353,8 +342,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-reference">API Reference</a> <a href="#api-reference">API Reference</a>
</li> </li>
...@@ -377,8 +364,6 @@ ...@@ -377,8 +364,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-parsers">Custom parsers</a> <a href="#custom-parsers">Custom parsers</a>
</li> </li>
...@@ -401,8 +386,6 @@ ...@@ -401,8 +386,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#third-party-packages">Third party packages</a> <a href="#third-party-packages">Third party packages</a>
</li> </li>
...@@ -427,8 +410,6 @@ ...@@ -427,8 +410,6 @@
</ul> </ul>
</div> </div>
...@@ -438,8 +419,6 @@ ...@@ -438,8 +419,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/parsers.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/parsers.py">
<span class="label label-info">parsers.py</span> <span class="label label-info">parsers.py</span>
</a> </a>
...@@ -596,18 +575,12 @@ def parse(self, stream, media_type=None, parser_context=None): ...@@ -596,18 +575,12 @@ def parse(self, stream, media_type=None, parser_context=None):
<p><a href="https://github.com/vbabiy/djangorestframework-camel-case">djangorestframework-camel-case</a> provides camel case JSON renderers and parsers for REST framework. This allows serializers to use Python-style underscored field names, but be exposed in the API as Javascript-style camel case field names. It is maintained by <a href="https://github.com/vbabiy">Vitaly Babiy</a>.</p> <p><a href="https://github.com/vbabiy/djangorestframework-camel-case">djangorestframework-camel-case</a> provides camel case JSON renderers and parsers for REST framework. This allows serializers to use Python-style underscored field names, but be exposed in the API as Javascript-style camel case field names. It is maintained by <a href="https://github.com/vbabiy">Vitaly Babiy</a>.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -625,10 +598,10 @@ def parse(self, stream, media_type=None, parser_context=None): ...@@ -625,10 +598,10 @@ def parse(self, stream, media_type=None, parser_context=None):
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -636,12 +609,12 @@ def parse(self, stream, media_type=None, parser_context=None): ...@@ -636,12 +609,12 @@ def parse(self, stream, media_type=None, parser_context=None):
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#permissions">Permissions</a> <a href="#permissions">Permissions</a>
</li> </li>
...@@ -357,8 +346,6 @@ ...@@ -357,8 +346,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-reference">API Reference</a> <a href="#api-reference">API Reference</a>
</li> </li>
...@@ -393,8 +380,6 @@ ...@@ -393,8 +380,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-permissions">Custom permissions</a> <a href="#custom-permissions">Custom permissions</a>
</li> </li>
...@@ -405,8 +390,6 @@ ...@@ -405,8 +390,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#third-party-packages">Third party packages</a> <a href="#third-party-packages">Third party packages</a>
</li> </li>
...@@ -423,8 +406,6 @@ ...@@ -423,8 +406,6 @@
</ul> </ul>
</div> </div>
...@@ -434,8 +415,6 @@ ...@@ -434,8 +415,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/permissions.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/permissions.py">
<span class="label label-info">permissions.py</span> <span class="label label-info">permissions.py</span>
</a> </a>
...@@ -615,18 +594,12 @@ class BlacklistPermission(permissions.BasePermission): ...@@ -615,18 +594,12 @@ class BlacklistPermission(permissions.BasePermission):
<p>The <a href="https://github.com/caxap/rest_condition">REST Condition</a> package is another extension for building complex permissions in a simple and convenient way. The extension allows you to combine permissions with logical operators.</p> <p>The <a href="https://github.com/caxap/rest_condition">REST Condition</a> package is another extension for building complex permissions in a simple and convenient way. The extension allows you to combine permissions with logical operators.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -644,10 +617,10 @@ class BlacklistPermission(permissions.BasePermission): ...@@ -644,10 +617,10 @@ class BlacklistPermission(permissions.BasePermission):
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -655,12 +628,12 @@ class BlacklistPermission(permissions.BasePermission): ...@@ -655,12 +628,12 @@ class BlacklistPermission(permissions.BasePermission):
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#serializer-relations">Serializer relations</a> <a href="#serializer-relations">Serializer relations</a>
</li> </li>
...@@ -349,8 +338,6 @@ ...@@ -349,8 +338,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-reference">API Reference</a> <a href="#api-reference">API Reference</a>
</li> </li>
...@@ -377,8 +364,6 @@ ...@@ -377,8 +364,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#nested-relationships">Nested relationships</a> <a href="#nested-relationships">Nested relationships</a>
</li> </li>
...@@ -389,8 +374,6 @@ ...@@ -389,8 +374,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-relational-fields">Custom relational fields</a> <a href="#custom-relational-fields">Custom relational fields</a>
</li> </li>
...@@ -401,8 +384,6 @@ ...@@ -401,8 +384,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#further-notes">Further notes</a> <a href="#further-notes">Further notes</a>
</li> </li>
...@@ -429,8 +410,6 @@ ...@@ -429,8 +410,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#third-party-packages">Third Party Packages</a> <a href="#third-party-packages">Third Party Packages</a>
</li> </li>
...@@ -443,8 +422,6 @@ ...@@ -443,8 +422,6 @@
</ul> </ul>
</div> </div>
...@@ -454,8 +431,6 @@ ...@@ -454,8 +431,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/relations.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/relations.py">
<span class="label label-info">relations.py</span> <span class="label label-info">relations.py</span>
</a> </a>
...@@ -557,6 +532,7 @@ class Track(models.Model): ...@@ -557,6 +532,7 @@ class Track(models.Model):
<li><code>queryset</code> - The queryset used for model instance lookups when validating the field input. Relationships must either set a queryset explicitly, or set <code>read_only=True</code>.</li> <li><code>queryset</code> - The queryset used for model instance lookups when validating the field input. Relationships must either set a queryset explicitly, or set <code>read_only=True</code>.</li>
<li><code>many</code> - If applied to a to-many relationship, you should set this argument to <code>True</code>.</li> <li><code>many</code> - If applied to a to-many relationship, you should set this argument to <code>True</code>.</li>
<li><code>allow_null</code> - If set to <code>True</code>, the field will accept values of <code>None</code> or the empty string for nullable relationships. Defaults to <code>False</code>.</li> <li><code>allow_null</code> - If set to <code>True</code>, the field will accept values of <code>None</code> or the empty string for nullable relationships. Defaults to <code>False</code>.</li>
<li><code>pk_field</code> - Set to a field to control serialization/deserialization of the primary key's value. For example, <code>pk_field=UUIDField(format='hex')</code> would serialize a UUID primary key into its compact hex representation.</li>
</ul> </ul>
<h2 id="hyperlinkedrelatedfield">HyperlinkedRelatedField</h2> <h2 id="hyperlinkedrelatedfield">HyperlinkedRelatedField</h2>
<p><code>HyperlinkedRelatedField</code> may be used to represent the target of the relationship using a hyperlink.</p> <p><code>HyperlinkedRelatedField</code> may be used to represent the target of the relationship using a hyperlink.</p>
...@@ -840,18 +816,12 @@ attributes are not configured to correctly match the URL conf.</p> ...@@ -840,18 +816,12 @@ attributes are not configured to correctly match the URL conf.</p>
<p>The <a href="https://github.com/alanjds/drf-nested-routers">drf-nested-routers package</a> provides routers and relationship fields for working with nested resources.</p> <p>The <a href="https://github.com/alanjds/drf-nested-routers">drf-nested-routers package</a> provides routers and relationship fields for working with nested resources.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -869,10 +839,10 @@ attributes are not configured to correctly match the URL conf.</p> ...@@ -869,10 +839,10 @@ attributes are not configured to correctly match the URL conf.</p>
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -880,12 +850,12 @@ attributes are not configured to correctly match the URL conf.</p> ...@@ -880,12 +850,12 @@ attributes are not configured to correctly match the URL conf.</p>
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#renderers">Renderers</a> <a href="#renderers">Renderers</a>
</li> </li>
...@@ -357,8 +346,6 @@ ...@@ -357,8 +346,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-reference">API Reference</a> <a href="#api-reference">API Reference</a>
</li> </li>
...@@ -389,8 +376,6 @@ ...@@ -389,8 +376,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-renderers">Custom renderers</a> <a href="#custom-renderers">Custom renderers</a>
</li> </li>
...@@ -417,8 +402,6 @@ ...@@ -417,8 +402,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#advanced-renderer-usage">Advanced renderer usage</a> <a href="#advanced-renderer-usage">Advanced renderer usage</a>
</li> </li>
...@@ -441,8 +424,6 @@ ...@@ -441,8 +424,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#third-party-packages">Third party packages</a> <a href="#third-party-packages">Third party packages</a>
</li> </li>
...@@ -483,8 +464,6 @@ ...@@ -483,8 +464,6 @@
</ul> </ul>
</div> </div>
...@@ -494,8 +473,6 @@ ...@@ -494,8 +473,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/renderers.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/renderers.py">
<span class="label label-info">renderers.py</span> <span class="label label-info">renderers.py</span>
</a> </a>
...@@ -803,18 +780,12 @@ In this case you can underspecify the media types it should respond to, by using ...@@ -803,18 +780,12 @@ In this case you can underspecify the media types it should respond to, by using
<p><a href="https://github.com/wq/django-rest-pandas">Django REST Pandas</a> provides a serializer and renderers that support additional data processing and output via the <a href="http://pandas.pydata.org/">Pandas</a> DataFrame API. Django REST Pandas includes renderers for Pandas-style CSV files, Excel workbooks (both <code>.xls</code> and <code>.xlsx</code>), and a number of <a href="https://github.com/wq/django-rest-pandas#supported-formats">other formats</a>. It is maintained by <a href="https://github.com/sheppard">S. Andrew Sheppard</a> as part of the <a href="https://github.com/wq">wq Project</a>.</p> <p><a href="https://github.com/wq/django-rest-pandas">Django REST Pandas</a> provides a serializer and renderers that support additional data processing and output via the <a href="http://pandas.pydata.org/">Pandas</a> DataFrame API. Django REST Pandas includes renderers for Pandas-style CSV files, Excel workbooks (both <code>.xls</code> and <code>.xlsx</code>), and a number of <a href="https://github.com/wq/django-rest-pandas#supported-formats">other formats</a>. It is maintained by <a href="https://github.com/sheppard">S. Andrew Sheppard</a> as part of the <a href="https://github.com/wq">wq Project</a>.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -832,10 +803,10 @@ In this case you can underspecify the media types it should respond to, by using ...@@ -832,10 +803,10 @@ In this case you can underspecify the media types it should respond to, by using
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -843,12 +814,12 @@ In this case you can underspecify the media types it should respond to, by using ...@@ -843,12 +814,12 @@ In this case you can underspecify the media types it should respond to, by using
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,29 +322,18 @@ ...@@ -324,29 +322,18 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#requests">Requests</a> <a href="#requests">Requests</a>
</li> </li>
<li class="main"> <li class="main">
<a href="#request-parsing">Request parsing</a> <a href="#request-parsing">Request parsing</a>
</li> </li>
...@@ -373,8 +360,6 @@ ...@@ -373,8 +360,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#content-negotiation">Content negotiation</a> <a href="#content-negotiation">Content negotiation</a>
</li> </li>
...@@ -389,8 +374,6 @@ ...@@ -389,8 +374,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#authentication">Authentication</a> <a href="#authentication">Authentication</a>
</li> </li>
...@@ -409,8 +392,6 @@ ...@@ -409,8 +392,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#browser-enhancements">Browser enhancements</a> <a href="#browser-enhancements">Browser enhancements</a>
</li> </li>
...@@ -429,8 +410,6 @@ ...@@ -429,8 +410,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#standard-httprequest-attributes">Standard HttpRequest attributes</a> <a href="#standard-httprequest-attributes">Standard HttpRequest attributes</a>
</li> </li>
...@@ -439,8 +418,6 @@ ...@@ -439,8 +418,6 @@
</ul> </ul>
</div> </div>
...@@ -450,8 +427,6 @@ ...@@ -450,8 +427,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/request.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/request.py">
<span class="label label-info">request.py</span> <span class="label label-info">request.py</span>
</a> </a>
...@@ -537,18 +512,12 @@ ...@@ -537,18 +512,12 @@
<p>Note that due to implementation reasons the <code>Request</code> class does not inherit from <code>HttpRequest</code> class, but instead extends the class using composition.</p> <p>Note that due to implementation reasons the <code>Request</code> class does not inherit from <code>HttpRequest</code> class, but instead extends the class using composition.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -566,10 +535,10 @@ ...@@ -566,10 +535,10 @@
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -577,12 +546,12 @@ ...@@ -577,12 +546,12 @@
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,29 +322,18 @@ ...@@ -324,29 +322,18 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#responses">Responses</a> <a href="#responses">Responses</a>
</li> </li>
<li class="main"> <li class="main">
<a href="#creating-responses">Creating responses</a> <a href="#creating-responses">Creating responses</a>
</li> </li>
...@@ -357,8 +344,6 @@ ...@@ -357,8 +344,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#attributes">Attributes</a> <a href="#attributes">Attributes</a>
</li> </li>
...@@ -393,8 +378,6 @@ ...@@ -393,8 +378,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#standard-httpresponse-attributes">Standard HttpResponse attributes</a> <a href="#standard-httpresponse-attributes">Standard HttpResponse attributes</a>
</li> </li>
...@@ -407,8 +390,6 @@ ...@@ -407,8 +390,6 @@
</ul> </ul>
</div> </div>
...@@ -418,8 +399,6 @@ ...@@ -418,8 +399,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/response.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/response.py">
<span class="label label-info">response.py</span> <span class="label label-info">response.py</span>
</a> </a>
...@@ -481,18 +460,12 @@ response['Cache-Control'] = 'no-cache' ...@@ -481,18 +460,12 @@ response['Cache-Control'] = 'no-cache'
<p>You won't typically need to call <code>.render()</code> yourself, as it's handled by Django's standard response cycle.</p> <p>You won't typically need to call <code>.render()</code> yourself, as it's handled by Django's standard response cycle.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -510,10 +483,10 @@ response['Cache-Control'] = 'no-cache' ...@@ -510,10 +483,10 @@ response['Cache-Control'] = 'no-cache'
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -521,12 +494,12 @@ response['Cache-Control'] = 'no-cache' ...@@ -521,12 +494,12 @@ response['Cache-Control'] = 'no-cache'
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#returning-urls">Returning URLs</a> <a href="#returning-urls">Returning URLs</a>
</li> </li>
...@@ -355,8 +344,6 @@ ...@@ -355,8 +344,6 @@
</ul> </ul>
</div> </div>
...@@ -366,8 +353,6 @@ ...@@ -366,8 +353,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/reverse.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/reverse.py">
<span class="label label-info">reverse.py</span> <span class="label label-info">reverse.py</span>
</a> </a>
...@@ -414,18 +399,12 @@ class APIRootView(APIView): ...@@ -414,18 +399,12 @@ class APIRootView(APIView):
</code></pre> </code></pre>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -443,10 +422,10 @@ class APIRootView(APIView): ...@@ -443,10 +422,10 @@ class APIRootView(APIView):
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -454,12 +433,12 @@ class APIRootView(APIView): ...@@ -454,12 +433,12 @@ class APIRootView(APIView):
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#routers">Routers</a> <a href="#routers">Routers</a>
</li> </li>
...@@ -349,8 +338,6 @@ ...@@ -349,8 +338,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-guide">API Guide</a> <a href="#api-guide">API Guide</a>
</li> </li>
...@@ -365,8 +352,6 @@ ...@@ -365,8 +352,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-routers">Custom Routers</a> <a href="#custom-routers">Custom Routers</a>
</li> </li>
...@@ -385,8 +370,6 @@ ...@@ -385,8 +370,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#third-party-packages">Third Party Packages</a> <a href="#third-party-packages">Third Party Packages</a>
</li> </li>
...@@ -407,8 +390,6 @@ ...@@ -407,8 +390,6 @@
</ul> </ul>
</div> </div>
...@@ -418,8 +399,6 @@ ...@@ -418,8 +399,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/routers.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/routers.py">
<span class="label label-info">routers.py</span> <span class="label label-info">routers.py</span>
</a> </a>
...@@ -671,18 +650,12 @@ rest.router.register_model(MyModel) ...@@ -671,18 +650,12 @@ rest.router.register_model(MyModel)
<p>The <a href="http://chibisov.github.io/drf-extensions/docs/"><code>DRF-extensions</code> package</a> provides <a href="http://chibisov.github.io/drf-extensions/docs/#routers">routers</a> for creating <a href="http://chibisov.github.io/drf-extensions/docs/#nested-routes">nested viewsets</a>, <a href="http://chibisov.github.io/drf-extensions/docs/#collection-level-controllers">collection level controllers</a> with <a href="http://chibisov.github.io/drf-extensions/docs/#controller-endpoint-name">customizable endpoint names</a>.</p> <p>The <a href="http://chibisov.github.io/drf-extensions/docs/"><code>DRF-extensions</code> package</a> provides <a href="http://chibisov.github.io/drf-extensions/docs/#routers">routers</a> for creating <a href="http://chibisov.github.io/drf-extensions/docs/#nested-routes">nested viewsets</a>, <a href="http://chibisov.github.io/drf-extensions/docs/#collection-level-controllers">collection level controllers</a> with <a href="http://chibisov.github.io/drf-extensions/docs/#controller-endpoint-name">customizable endpoint names</a>.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -700,10 +673,10 @@ rest.router.register_model(MyModel) ...@@ -700,10 +673,10 @@ rest.router.register_model(MyModel)
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -711,12 +684,12 @@ rest.router.register_model(MyModel) ...@@ -711,12 +684,12 @@ rest.router.register_model(MyModel)
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#serializers">Serializers</a> <a href="#serializers">Serializers</a>
</li> </li>
...@@ -389,8 +378,6 @@ ...@@ -389,8 +378,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#modelserializer">ModelSerializer</a> <a href="#modelserializer">ModelSerializer</a>
</li> </li>
...@@ -433,8 +420,6 @@ ...@@ -433,8 +420,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#hyperlinkedmodelserializer">HyperlinkedModelSerializer</a> <a href="#hyperlinkedmodelserializer">HyperlinkedModelSerializer</a>
</li> </li>
...@@ -449,8 +434,6 @@ ...@@ -449,8 +434,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#listserializer">ListSerializer</a> <a href="#listserializer">ListSerializer</a>
</li> </li>
...@@ -469,8 +452,6 @@ ...@@ -469,8 +452,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#baseserializer">BaseSerializer</a> <a href="#baseserializer">BaseSerializer</a>
</li> </li>
...@@ -489,8 +470,6 @@ ...@@ -489,8 +470,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#advanced-serializer-usage">Advanced serializer usage</a> <a href="#advanced-serializer-usage">Advanced serializer usage</a>
</li> </li>
...@@ -509,8 +488,6 @@ ...@@ -509,8 +488,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#third-party-packages">Third party packages</a> <a href="#third-party-packages">Third party packages</a>
</li> </li>
...@@ -531,8 +508,6 @@ ...@@ -531,8 +508,6 @@
</ul> </ul>
</div> </div>
...@@ -542,8 +517,6 @@ ...@@ -542,8 +517,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/serializers.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/serializers.py">
<span class="label label-info">serializers.py</span> <span class="label label-info">serializers.py</span>
</a> </a>
...@@ -1345,18 +1318,12 @@ def all_high_scores(request): ...@@ -1345,18 +1318,12 @@ def all_high_scores(request):
<p>The <a href="https://github.com/djangonauts/django-rest-framework-hstore">django-rest-framework-hstore</a> package provides an <code>HStoreSerializer</code> to support <a href="https://github.com/djangonauts/django-hstore">django-hstore</a> <code>DictionaryField</code> model field and its <code>schema-mode</code> feature.</p> <p>The <a href="https://github.com/djangonauts/django-rest-framework-hstore">django-rest-framework-hstore</a> package provides an <code>HStoreSerializer</code> to support <a href="https://github.com/djangonauts/django-hstore">django-hstore</a> <code>DictionaryField</code> model field and its <code>schema-mode</code> feature.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -1374,10 +1341,10 @@ def all_high_scores(request): ...@@ -1374,10 +1341,10 @@ def all_high_scores(request):
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -1385,12 +1352,12 @@ def all_high_scores(request): ...@@ -1385,12 +1352,12 @@ def all_high_scores(request):
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#settings">Settings</a> <a href="#settings">Settings</a>
</li> </li>
...@@ -349,8 +338,6 @@ ...@@ -349,8 +338,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-reference">API Reference</a> <a href="#api-reference">API Reference</a>
</li> </li>
...@@ -399,8 +386,6 @@ ...@@ -399,8 +386,6 @@
</ul> </ul>
</div> </div>
...@@ -410,8 +395,6 @@ ...@@ -410,8 +395,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/settings.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/settings.py">
<span class="label label-info">settings.py</span> <span class="label label-info">settings.py</span>
</a> </a>
...@@ -686,18 +669,12 @@ If set to <code>None</code> then generic filtering is disabled.</p> ...@@ -686,18 +669,12 @@ If set to <code>None</code> then generic filtering is disabled.</p>
<p>Default: <code>None</code></p> <p>Default: <code>None</code></p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -715,10 +692,10 @@ If set to <code>None</code> then generic filtering is disabled.</p> ...@@ -715,10 +692,10 @@ If set to <code>None</code> then generic filtering is disabled.</p>
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -726,12 +703,12 @@ If set to <code>None</code> then generic filtering is disabled.</p> ...@@ -726,12 +703,12 @@ If set to <code>None</code> then generic filtering is disabled.</p>
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#status-codes">Status Codes</a> <a href="#status-codes">Status Codes</a>
</li> </li>
...@@ -371,8 +360,6 @@ ...@@ -371,8 +360,6 @@
</ul> </ul>
</div> </div>
...@@ -382,8 +369,6 @@ ...@@ -382,8 +369,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/status.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/status.py">
<span class="label label-info">status.py</span> <span class="label label-info">status.py</span>
</a> </a>
...@@ -486,18 +471,12 @@ is_server_error() # 5xx ...@@ -486,18 +471,12 @@ is_server_error() # 5xx
</code></pre> </code></pre>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -515,10 +494,10 @@ is_server_error() # 5xx ...@@ -515,10 +494,10 @@ is_server_error() # 5xx
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -526,12 +505,12 @@ is_server_error() # 5xx ...@@ -526,12 +505,12 @@ is_server_error() # 5xx
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,29 +322,18 @@ ...@@ -324,29 +322,18 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#testing">Testing</a> <a href="#testing">Testing</a>
</li> </li>
<li class="main"> <li class="main">
<a href="#apirequestfactory">APIRequestFactory</a> <a href="#apirequestfactory">APIRequestFactory</a>
</li> </li>
...@@ -365,8 +352,6 @@ ...@@ -365,8 +352,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#apiclient">APIClient</a> <a href="#apiclient">APIClient</a>
</li> </li>
...@@ -385,8 +370,6 @@ ...@@ -385,8 +370,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#test-cases">Test cases</a> <a href="#test-cases">Test cases</a>
</li> </li>
...@@ -397,8 +380,6 @@ ...@@ -397,8 +380,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#testing-responses">Testing responses</a> <a href="#testing-responses">Testing responses</a>
</li> </li>
...@@ -413,8 +394,6 @@ ...@@ -413,8 +394,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#configuration">Configuration</a> <a href="#configuration">Configuration</a>
</li> </li>
...@@ -431,8 +410,6 @@ ...@@ -431,8 +410,6 @@
</ul> </ul>
</div> </div>
...@@ -442,8 +419,6 @@ ...@@ -442,8 +419,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/test.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/test.py">
<span class="label label-info">test.py</span> <span class="label label-info">test.py</span>
</a> </a>
...@@ -650,18 +625,12 @@ self.assertEqual(response.content, '{"username": "lauren", "id": 4}') ...@@ -650,18 +625,12 @@ self.assertEqual(response.content, '{"username": "lauren", "id": 4}')
</code></pre> </code></pre>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -679,10 +648,10 @@ self.assertEqual(response.content, '{"username": "lauren", "id": 4}') ...@@ -679,10 +648,10 @@ self.assertEqual(response.content, '{"username": "lauren", "id": 4}')
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -690,12 +659,12 @@ self.assertEqual(response.content, '{"username": "lauren", "id": 4}') ...@@ -690,12 +659,12 @@ self.assertEqual(response.content, '{"username": "lauren", "id": 4}')
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#throttling">Throttling</a> <a href="#throttling">Throttling</a>
</li> </li>
...@@ -361,8 +350,6 @@ ...@@ -361,8 +350,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-reference">API Reference</a> <a href="#api-reference">API Reference</a>
</li> </li>
...@@ -381,8 +368,6 @@ ...@@ -381,8 +368,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-throttles">Custom throttles</a> <a href="#custom-throttles">Custom throttles</a>
</li> </li>
...@@ -395,8 +380,6 @@ ...@@ -395,8 +380,6 @@
</ul> </ul>
</div> </div>
...@@ -406,8 +389,6 @@ ...@@ -406,8 +389,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/throttling.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/throttling.py">
<span class="label label-info">throttling.py</span> <span class="label label-info">throttling.py</span>
</a> </a>
...@@ -557,18 +538,12 @@ class UploadView(APIView): ...@@ -557,18 +538,12 @@ class UploadView(APIView):
</code></pre> </code></pre>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -586,10 +561,10 @@ class UploadView(APIView): ...@@ -586,10 +561,10 @@ class UploadView(APIView):
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -597,12 +572,12 @@ class UploadView(APIView): ...@@ -597,12 +572,12 @@ class UploadView(APIView):
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#validators">Validators</a> <a href="#validators">Validators</a>
</li> </li>
...@@ -369,8 +358,6 @@ ...@@ -369,8 +358,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#advanced-default-argument-usage">Advanced 'default' argument usage</a> <a href="#advanced-default-argument-usage">Advanced 'default' argument usage</a>
</li> </li>
...@@ -385,8 +372,6 @@ ...@@ -385,8 +372,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#writing-custom-validators">Writing custom validators</a> <a href="#writing-custom-validators">Writing custom validators</a>
</li> </li>
...@@ -403,8 +388,6 @@ ...@@ -403,8 +388,6 @@
</ul> </ul>
</div> </div>
...@@ -414,8 +397,6 @@ ...@@ -414,8 +397,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/validators.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/validators.py">
<span class="label label-info">validators.py</span> <span class="label label-info">validators.py</span>
</a> </a>
...@@ -593,18 +574,12 @@ It has two required arguments, and a single optional <code>messages</code> argum ...@@ -593,18 +574,12 @@ It has two required arguments, and a single optional <code>messages</code> argum
</code></pre> </code></pre>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -622,10 +597,10 @@ It has two required arguments, and a single optional <code>messages</code> argum ...@@ -622,10 +597,10 @@ It has two required arguments, and a single optional <code>messages</code> argum
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -633,12 +608,12 @@ It has two required arguments, and a single optional <code>messages</code> argum ...@@ -633,12 +608,12 @@ It has two required arguments, and a single optional <code>messages</code> argum
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#versioning">Versioning</a> <a href="#versioning">Versioning</a>
</li> </li>
...@@ -353,8 +342,6 @@ ...@@ -353,8 +342,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-reference">API Reference</a> <a href="#api-reference">API Reference</a>
</li> </li>
...@@ -381,8 +368,6 @@ ...@@ -381,8 +368,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-versioning-schemes">Custom versioning schemes</a> <a href="#custom-versioning-schemes">Custom versioning schemes</a>
</li> </li>
...@@ -395,8 +380,6 @@ ...@@ -395,8 +380,6 @@
</ul> </ul>
</div> </div>
...@@ -406,8 +389,6 @@ ...@@ -406,8 +389,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/versioning.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/versioning.py">
<span class="label label-info">versioning.py</span> <span class="label label-info">versioning.py</span>
</a> </a>
...@@ -469,6 +450,18 @@ reverse('bookings-list', request=request) ...@@ -469,6 +450,18 @@ reverse('bookings-list', request=request)
<li><code>ALLOWED_VERSIONS</code>. If set, this value will restrict the set of versions that may be returned by the versioning scheme, and will raise an error if the provided version if not in this set. Defaults to <code>None</code>.</li> <li><code>ALLOWED_VERSIONS</code>. If set, this value will restrict the set of versions that may be returned by the versioning scheme, and will raise an error if the provided version if not in this set. Defaults to <code>None</code>.</li>
<li><code>VERSION_PARAMETER</code>. The string that should used for any versioning parameters, such as in the media type or URL query parameters. Defaults to <code>'version'</code>.</li> <li><code>VERSION_PARAMETER</code>. The string that should used for any versioning parameters, such as in the media type or URL query parameters. Defaults to <code>'version'</code>.</li>
</ul> </ul>
<p>You can also set your versioning class plus those three values on a per-view or a per-viewset basis by defining your own versioning scheme and using the <code>default_version</code>, <code>allowed_versions</code> and <code>version_param</code> class variables. For example, if you want to use <code>URLPathVersioning</code>:</p>
<pre><code>from rest_framework.versioning import URLPathVersioning
from rest_framework.views import APIView
class ExampleVersioning(URLPathVersioning):
default_version = ...
allowed_versions = ...
version_param = ...
class ExampleView(APIVIew):
versioning_class = ExampleVersioning
</code></pre>
<hr /> <hr />
<h1 id="api-reference">API Reference</h1> <h1 id="api-reference">API Reference</h1>
<h2 id="acceptheaderversioning">AcceptHeaderVersioning</h2> <h2 id="acceptheaderversioning">AcceptHeaderVersioning</h2>
...@@ -499,12 +492,12 @@ Accept: application/json ...@@ -499,12 +492,12 @@ Accept: application/json
<p>Your URL conf must include a pattern that matches the version with a <code>'version'</code> keyword argument, so that this information is available to the versioning scheme.</p> <p>Your URL conf must include a pattern that matches the version with a <code>'version'</code> keyword argument, so that this information is available to the versioning scheme.</p>
<pre><code>urlpatterns = [ <pre><code>urlpatterns = [
url( url(
r'^(?P&lt;version&gt;{v1,v2})/bookings/$', r'^(?P&lt;version&gt;[v1|v2]+)/bookings/$',
bookings_list, bookings_list,
name='bookings-list' name='bookings-list'
), ),
url( url(
r'^(?P&lt;version&gt;{v1,v2})/bookings/(?P&lt;pk&gt;[0-9]+)/$', r'^(?P&lt;version&gt;[v1|v2]+)/bookings/(?P&lt;pk&gt;[0-9]+)/$',
bookings_detail, bookings_detail,
name='bookings-detail' name='bookings-detail'
) )
...@@ -562,18 +555,12 @@ Accept: application/json ...@@ -562,18 +555,12 @@ Accept: application/json
<p>If your versioning scheme is based on the request URL, you will also want to alter how versioned URLs are determined. In order to do so you should override the <code>.reverse()</code> method on the class. See the source code for examples.</p> <p>If your versioning scheme is based on the request URL, you will also want to alter how versioned URLs are determined. In order to do so you should override the <code>.reverse()</code> method on the class. See the source code for examples.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -591,10 +578,10 @@ Accept: application/json ...@@ -591,10 +578,10 @@ Accept: application/json
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -602,12 +589,12 @@ Accept: application/json ...@@ -602,12 +589,12 @@ Accept: application/json
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#class-based-views">Class Based Views</a> <a href="#class-based-views">Class Based Views</a>
</li> </li>
...@@ -361,8 +350,6 @@ ...@@ -361,8 +350,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#function-based-views">Function Based Views</a> <a href="#function-based-views">Function Based Views</a>
</li> </li>
...@@ -379,8 +366,6 @@ ...@@ -379,8 +366,6 @@
</ul> </ul>
</div> </div>
...@@ -390,8 +375,6 @@ ...@@ -390,8 +375,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/decorators.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/decorators.py">
<span class="label label-info">decorators.py</span> <span class="label label-info">decorators.py</span>
</a> </a>
...@@ -525,18 +508,12 @@ def view(request): ...@@ -525,18 +508,12 @@ def view(request):
<p>Each of these decorators takes a single argument which must be a list or tuple of classes.</p> <p>Each of these decorators takes a single argument which must be a list or tuple of classes.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -554,10 +531,10 @@ def view(request): ...@@ -554,10 +531,10 @@ def view(request):
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -565,12 +542,12 @@ def view(request): ...@@ -565,12 +542,12 @@ def view(request):
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#viewsets">ViewSets</a> <a href="#viewsets">ViewSets</a>
</li> </li>
...@@ -353,8 +342,6 @@ ...@@ -353,8 +342,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#api-reference">API Reference</a> <a href="#api-reference">API Reference</a>
</li> </li>
...@@ -377,8 +364,6 @@ ...@@ -377,8 +364,6 @@
</li> </li>
<li class="main"> <li class="main">
<a href="#custom-viewset-base-classes">Custom ViewSet base classes</a> <a href="#custom-viewset-base-classes">Custom ViewSet base classes</a>
</li> </li>
...@@ -391,8 +376,6 @@ ...@@ -391,8 +376,6 @@
</ul> </ul>
</div> </div>
...@@ -402,8 +385,6 @@ ...@@ -402,8 +385,6 @@
<a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/viewsets.py"> <a class="github" href="https://github.com/tomchristie/django-rest-framework/tree/master/rest_framework/viewsets.py">
<span class="label label-info">viewsets.py</span> <span class="label label-info">viewsets.py</span>
</a> </a>
...@@ -429,7 +410,7 @@ from rest_framework.response import Response ...@@ -429,7 +410,7 @@ from rest_framework.response import Response
class UserViewSet(viewsets.ViewSet): class UserViewSet(viewsets.ViewSet):
""" """
A simple ViewSet that for listing or retrieving users. A simple ViewSet for listing or retrieving users.
""" """
def list(self, request): def list(self, request):
queryset = User.objects.all() queryset = User.objects.all()
...@@ -615,18 +596,12 @@ class UserViewSet(viewsets.ModelViewSet): ...@@ -615,18 +596,12 @@ class UserViewSet(viewsets.ModelViewSet):
<p>By creating your own base <code>ViewSet</code> classes, you can provide common behavior that can be reused in multiple viewsets across your API.</p> <p>By creating your own base <code>ViewSet</code> classes, you can provide common behavior that can be reused in multiple viewsets across your API.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -644,10 +619,10 @@ class UserViewSet(viewsets.ModelViewSet): ...@@ -644,10 +619,10 @@ class UserViewSet(viewsets.ModelViewSet):
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -655,12 +630,12 @@ class UserViewSet(viewsets.ModelViewSet): ...@@ -655,12 +630,12 @@ class UserViewSet(viewsets.ModelViewSet):
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
body {
padding-top: 70px;
background: url(../img/grid.png) repeat-x;
background-attachment: fixed;
background-color: #f8f8f8;
}
body > div.container {
min-height: 400px;
}
ul.nav li.main {
font-weight: bold;
}
div.col-md-3 {
padding-left: 0;
}
div.source-links {
float: right;
}
div.col-md-9 img {
max-width: 100%;
display: block;
padding: 4px;
line-height: 1.428571429;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 4px;
margin: 20px auto 30px auto;
}
h1, h2, h3 {
color: #444;
}
h1 {
font-weight: 400;
font-size: 42px;
}
h2, h3, h4, h5, h6 {
font-weight: 300;
}
hr {
border-top: 1px solid #aaa;
}
pre, .rst-content tt {
max-width: 100%;
background: #fff;
border: solid 1px #e1e4e5;
color: #e74c3c;
overflow-x: auto;
}
code.code-large, .rst-content tt.code-large {
font-size: 90%;
}
code {
padding: 2px 5px;
color: #c7254e;
background-color: #f9f2f4;
font-size: 75%;
}
code, kbd, pre, samp {
font-family: monospace,serif;
font-size: 12px !important;
}
footer {
margin-top: 30px;
margin-bottom: 10px;
text-align: center;
font-weight: 200;
}
.modal-dialog {
margin-top: 60px;
}
/*
* Side navigation
*
* Scrollspy and affixed enhanced navigation to highlight sections and secondary
* sections of docs content.
*/
/* By default it's not affixed in mobile views, so undo that */
.bs-sidebar.affix {
position: static;
}
.bs-sidebar.well {
padding: 0;
}
/* First level of nav */
.bs-sidenav {
padding-top: 10px;
padding-bottom: 10px;
border-radius: 5px;
}
/* All levels of nav */
.bs-sidebar .nav > li > a {
display: block;
padding: 5px 20px;
}
.bs-sidebar .nav > li > a:hover,
.bs-sidebar .nav > li > a:focus {
text-decoration: none;
border-right: 1px solid;
}
.bs-sidebar .nav > .active > a,
.bs-sidebar .nav > .active:hover > a,
.bs-sidebar .nav > .active:focus > a {
font-weight: bold;
background-color: transparent;
border-right: 1px solid;
}
/* Nav: second level (shown on .active) */
.bs-sidebar .nav .nav {
display: none; /* Hide by default, but at >768px, show it */
margin-bottom: 8px;
}
.bs-sidebar .nav .nav > li > a {
padding-top: 3px;
padding-bottom: 3px;
padding-left: 30px;
font-size: 90%;
}
/* Show and affix the side nav when space allows it */
@media (min-width: 992px) {
.bs-sidebar .nav > .active > ul {
display: block;
}
/* Widen the fixed sidebar */
.bs-sidebar.affix,
.bs-sidebar.affix-bottom {
width: 213px;
}
.bs-sidebar.affix {
position: fixed; /* Undo the static from mobile first approach */
top: 80px;
}
.bs-sidebar.affix-bottom {
position: absolute; /* Undo the static from mobile first approach */
}
.bs-sidebar.affix-bottom .bs-sidenav,
.bs-sidebar.affix .bs-sidenav {
margin-top: 0;
margin-bottom: 0;
}
}
@media (min-width: 1200px) {
/* Widen the fixed sidebar again */
.bs-sidebar.affix-bottom,
.bs-sidebar.affix {
width: 263px;
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -6,6 +6,7 @@ pre { ...@@ -6,6 +6,7 @@ pre {
.dropdown .dropdown-menu { .dropdown .dropdown-menu {
display: none; display: none;
overflow-y: scroll;
} }
.dropdown.open .dropdown-menu { .dropdown.open .dropdown-menu {
...@@ -43,8 +44,8 @@ body.index-page #main-content iframe.twitter-share-button { ...@@ -43,8 +44,8 @@ body.index-page #main-content iframe.twitter-share-button {
margin-right: 8px; margin-right: 8px;
} }
/* Travis CI badge */ /* Travis CI and PyPI badge */
body.index-page #main-content img.travis-build-image { body.index-page #main-content img.status-badge {
float: right; float: right;
margin-right: 8px; margin-right: 8px;
margin-top: -11px; margin-top: -11px;
......
/*
This is the GitHub theme for highlight.js
github.com style (c) Vasily Polovnyov <vast@whiteants.net>
*/
.hljs {
display: block; padding: 0.5em;
color: #333;
}
.hljs-comment,
.hljs-template_comment,
.diff .hljs-header,
.hljs-javadoc {
color: #998;
font-style: italic
}
.hljs-keyword,
.css .rule .hljs-keyword,
.hljs-winutils,
.javascript .hljs-title,
.nginx .hljs-title,
.hljs-subst,
.hljs-request,
.hljs-status {
color: #333;
font-weight: bold
}
.hljs-number,
.hljs-hexcolor,
.ruby .hljs-constant {
color: #099;
}
.hljs-string,
.hljs-tag .hljs-value,
.hljs-phpdoc,
.tex .hljs-formula {
color: #d14
}
.hljs-title,
.hljs-id,
.coffeescript .hljs-params,
.scss .hljs-preprocessor {
color: #900;
font-weight: bold
}
.javascript .hljs-title,
.lisp .hljs-title,
.clojure .hljs-title,
.hljs-subst {
font-weight: normal
}
.hljs-class .hljs-title,
.haskell .hljs-type,
.vhdl .hljs-literal,
.tex .hljs-command {
color: #458;
font-weight: bold
}
.hljs-tag,
.hljs-tag .hljs-title,
.hljs-rules .hljs-property,
.django .hljs-tag .hljs-keyword {
color: #000080;
font-weight: normal
}
.hljs-attribute,
.hljs-variable,
.lisp .hljs-body {
color: #008080
}
.hljs-regexp {
color: #009926
}
.hljs-symbol,
.ruby .hljs-symbol .hljs-string,
.lisp .hljs-keyword,
.tex .hljs-special,
.hljs-prompt {
color: #990073
}
.hljs-built_in,
.lisp .hljs-title,
.clojure .hljs-built_in {
color: #0086b3
}
.hljs-preprocessor,
.hljs-pragma,
.hljs-pi,
.hljs-doctype,
.hljs-shebang,
.hljs-cdata {
color: #999;
font-weight: bold
}
.hljs-deletion {
background: #fdd
}
.hljs-addition {
background: #dfd
}
.diff .hljs-change {
background: #0086b3
}
.hljs-chunk {
color: #aaa
}
.com { color: #93a1a1; }
.lit { color: #195f91; }
.pun, .opn, .clo { color: #93a1a1; }
.fun { color: #dc322f; }
.str, .atv { color: #D14; }
.kwd, .prettyprint .tag { color: #1e347b; }
.typ, .atn, .dec, .var { color: teal; }
.pln { color: #48484c; }
.prettyprint {
padding: 8px;
}
.prettyprint.linenums {
-webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
-moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
}
/* Specify class=linenums on a pre to get line numbering */
ol.linenums {
margin: 0 0 0 33px; /* IE indents via margin-left */
}
ol.linenums li {
padding-left: 12px;
color: #bebec5;
line-height: 20px;
text-shadow: 0 1px 0 #fff;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="index-page"> <body onload="prettyPrint()" class="index-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,105 +322,76 @@ ...@@ -324,105 +322,76 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#">Django REST framework</a> <a href="#">Django REST framework</a>
</li> </li>
<li class=""> <li class="">
<a href="#requirements">Requirements</a> <a href="#requirements">Requirements</a>
</li> </li>
<li class=""> <li class="">
<a href="#installation">Installation</a> <a href="#installation">Installation</a>
</li> </li>
<li class=""> <li class="">
<a href="#example">Example</a> <a href="#example">Example</a>
</li> </li>
<li class=""> <li class="">
<a href="#quickstart">Quickstart</a> <a href="#quickstart">Quickstart</a>
</li> </li>
<li class=""> <li class="">
<a href="#tutorial">Tutorial</a> <a href="#tutorial">Tutorial</a>
</li> </li>
<li class=""> <li class="">
<a href="#api-guide">API Guide</a> <a href="#api-guide">API Guide</a>
</li> </li>
<li class=""> <li class="">
<a href="#topics">Topics</a> <a href="#topics">Topics</a>
</li> </li>
<li class=""> <li class="">
<a href="#development">Development</a> <a href="#development">Development</a>
</li> </li>
<li class=""> <li class="">
<a href="#support">Support</a> <a href="#support">Support</a>
</li> </li>
<li class=""> <li class="">
<a href="#security">Security</a> <a href="#security">Security</a>
</li> </li>
<li class=""> <li class="">
<a href="#license">License</a> <a href="#license">License</a>
</li> </li>
...@@ -431,13 +400,11 @@ ...@@ -431,13 +400,11 @@
<div class="promo"> <div class="promo">
<hr/> <hr/>
<script type="text/javascript" src="//cdn.fusionads.net/fusion.js?zoneid=1332&serve=C6SDP2Y&placement=djangorestframework" id="_fusionads_js"></script> <script type="text/javascript" src="//cdn.fusionads.net/fusion.js?zoneid=1332&serve=C6SDP2Y&placement=djangorestframework" id="_fusionads_js"></script>
</div> </div>
</ul> </ul>
</div> </div>
...@@ -447,15 +414,19 @@ ...@@ -447,15 +414,19 @@
<p class="badges" height=20px> <p class="badges" height=20px>
<iframe src="http://ghbtns.com/github-btn.html?user=tomchristie&amp;repo=django-rest-framework&amp;type=watch&amp;count=true" class="github-star-button" allowtransparency="true" frameborder="0" scrolling="0" width="110px" height="20px"></iframe> <iframe src="http://ghbtns.com/github-btn.html?user=tomchristie&amp;repo=django-rest-framework&amp;type=watch&amp;count=true" class="github-star-button" allowtransparency="true" frameborder="0" scrolling="0" width="110px" height="20px"></iframe>
<a href="https://twitter.com/share" class="twitter-share-button" data-url="django-rest-framework.org" data-text="Checking out the totally awesome Django REST framework! http://www.django-rest-framework.org" data-count="none"></a> <a href="https://twitter.com/share" class="twitter-share-button" data-url="django-rest-framework.org" data-text="Checking out the totally awesome Django REST framework! http://www.django-rest-framework.org" data-count="none"></a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="http://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="http://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<img src="https://secure.travis-ci.org/tomchristie/django-rest-framework.svg?branch=master" class="travis-build-image"> <a href="http://travis-ci.org/tomchristie/django-rest-framework?branch=master">
<img src="https://secure.travis-ci.org/tomchristie/django-rest-framework.svg?branch=master" class="status-badge">
</a>
<a href="https://pypi.python.org/pypi/djangorestframework">
<img src="https://img.shields.io/pypi/v/djangorestframework.svg" class="status-badge">
</a>
</p> </p>
<hr /> <hr />
...@@ -658,18 +629,12 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ...@@ -658,18 +629,12 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -687,10 +652,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p> ...@@ -687,10 +652,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
<script src="./js/theme.js"></script> <script src="./js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -698,12 +663,12 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p> ...@@ -698,12 +663,12 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
/* Highlight */
$( document ).ready(function() {
hljs.initHighlightingOnLoad();
$('table').addClass('table');
});
/* Scrollspy */
var navHeight = $('.navbar').outerHeight(true) + 10
$('body').scrollspy({
target: '.bs-sidebar',
offset: navHeight
})
/* Prevent disabled links from causing a page reload */
$("li.disabled a").click(function() {
event.preventDefault();
});
/* Adjust the scroll height of anchors to compensate for the fixed navbar */
window.disableShift = false;
var shiftWindow = function() {
if (window.disableShift) {
window.disableShift = false;
} else {
/* If we're at the bottom of the page, don't erronously scroll up */
var scrolledToBottomOfPage = (
(window.innerHeight + window.scrollY) >= document.body.offsetHeight
);
if (!scrolledToBottomOfPage) {
scrollBy(0, -60);
};
};
};
if (location.hash) {shiftWindow();}
window.addEventListener("hashchange", shiftWindow);
/* Deal with clicks on nav links that do not change the current anchor link. */
$("ul.nav a" ).click(function() {
var href = this.href;
var suffix = location.hash;
var matchesCurrentHash = (href.indexOf(suffix, href.length - suffix.length) !== -1);
if (location.hash && matchesCurrentHash) {
/* Force a single 'hashchange' event to occur after the click event */
window.disableShift = true;
location.hash='';
};
});
Copyright (c) 2006, Ivan Sagalaev
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of highlight.js nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#django-rest-framework-30">Django REST framework 3.0</a> <a href="#django-rest-framework-30">Django REST framework 3.0</a>
</li> </li>
...@@ -387,8 +376,6 @@ ...@@ -387,8 +376,6 @@
</ul> </ul>
</div> </div>
...@@ -398,8 +385,6 @@ ...@@ -398,8 +385,6 @@
<h1 id="django-rest-framework-30">Django REST framework 3.0</h1> <h1 id="django-rest-framework-30">Django REST framework 3.0</h1>
<p>The 3.0 release of Django REST framework is the result of almost four years of iteration and refinement. It comprehensively addresses some of the previous remaining design issues in serializers, fields and the generic views.</p> <p>The 3.0 release of Django REST framework is the result of almost four years of iteration and refinement. It comprehensively addresses some of the previous remaining design issues in serializers, fields and the generic views.</p>
<p><strong>This release is incremental in nature. There <em>are</em> some breaking API changes, and upgrading <em>will</em> require you to read the release notes carefully, but the migration path should otherwise be relatively straightforward.</strong></p> <p><strong>This release is incremental in nature. There <em>are</em> some breaking API changes, and upgrading <em>will</em> require you to read the release notes carefully, but the migration path should otherwise be relatively straightforward.</strong></p>
...@@ -1142,18 +1127,12 @@ amount = serializers.DecimalField( ...@@ -1142,18 +1127,12 @@ amount = serializers.DecimalField(
<p>You can follow development on the GitHub site, where we use <a href="https://github.com/tomchristie/django-rest-framework/milestones">milestones to indicate planning timescales</a>.</p> <p>You can follow development on the GitHub site, where we use <a href="https://github.com/tomchristie/django-rest-framework/milestones">milestones to indicate planning timescales</a>.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -1171,10 +1150,10 @@ amount = serializers.DecimalField( ...@@ -1171,10 +1150,10 @@ amount = serializers.DecimalField(
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -1182,12 +1161,12 @@ amount = serializers.DecimalField( ...@@ -1182,12 +1161,12 @@ amount = serializers.DecimalField(
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#django-rest-framework-31">Django REST framework 3.1</a> <a href="#django-rest-framework-31">Django REST framework 3.1</a>
</li> </li>
...@@ -379,8 +368,6 @@ ...@@ -379,8 +368,6 @@
</ul> </ul>
</div> </div>
...@@ -390,8 +377,6 @@ ...@@ -390,8 +377,6 @@
<h1 id="django-rest-framework-31">Django REST framework 3.1</h1> <h1 id="django-rest-framework-31">Django REST framework 3.1</h1>
<p>The 3.1 release is an intermediate step in the Kickstarter project releases, and includes a range of new functionality.</p> <p>The 3.1 release is an intermediate step in the Kickstarter project releases, and includes a range of new functionality.</p>
<p>Some highlights include:</p> <p>Some highlights include:</p>
...@@ -536,18 +521,12 @@ Host: example.org ...@@ -536,18 +521,12 @@ Host: example.org
<p>This will either be made as a single 3.2 release, or split across two separate releases, with the HTML forms and filter controls coming in 3.2, and the admin-style interface coming in a 3.3 release.</p> <p>This will either be made as a single 3.2 release, or split across two separate releases, with the HTML forms and filter controls coming in 3.2, and the admin-style interface coming in a 3.3 release.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -565,10 +544,10 @@ Host: example.org ...@@ -565,10 +544,10 @@ Host: example.org
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -576,12 +555,12 @@ Host: example.org ...@@ -576,12 +555,12 @@ Host: example.org
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
<body onload="prettyPrint()" class="-page"> <body onload="prettyPrint()" class="-page">
<div class="wrapper"> <div class="wrapper">
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container-fluid"> <div class="container-fluid">
...@@ -301,7 +300,6 @@ ...@@ -301,7 +300,6 @@
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <!-- Search Modal -->
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
...@@ -324,21 +322,12 @@ ...@@ -324,21 +322,12 @@
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<!-- TODO
<p style="margin-top: -12px">
<a class="btn btn-mini btn-primary" style="width: 60px">&laquo; previous</a>
<a class="btn btn-mini btn-primary" style="float: right; margin-right: 8px; width: 60px;">next &raquo;</a>
</p>
-->
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <ul class="nav nav-list side-nav well sidebar-nav-fixed">
<li class="main"> <li class="main">
<a href="#working-with-ajax-csrf-cors">Working with AJAX, CSRF CORS</a> <a href="#working-with-ajax-csrf-cors">Working with AJAX, CSRF CORS</a>
</li> </li>
...@@ -359,8 +348,6 @@ ...@@ -359,8 +348,6 @@
</ul> </ul>
</div> </div>
...@@ -370,8 +357,6 @@ ...@@ -370,8 +357,6 @@
<h1 id="working-with-ajax-csrf-cors">Working with AJAX, CSRF &amp; CORS</h1> <h1 id="working-with-ajax-csrf-cors">Working with AJAX, CSRF &amp; CORS</h1>
<blockquote> <blockquote>
<p>"Take a close look at possible CSRF / XSRF vulnerabilities on your own websites. They're the worst kind of vulnerability &mdash; very easy to exploit by attackers, yet not so intuitively easy to understand for software developers, at least until you've been bitten by one."</p> <p>"Take a close look at possible CSRF / XSRF vulnerabilities on your own websites. They're the worst kind of vulnerability &mdash; very easy to exploit by attackers, yet not so intuitively easy to understand for software developers, at least until you've been bitten by one."</p>
...@@ -396,18 +381,12 @@ ...@@ -396,18 +381,12 @@
<p><a href="https://github.com/ottoyiu/">Otto Yiu</a> maintains the <a href="https://github.com/ottoyiu/django-cors-headers/">django-cors-headers</a> package, which is known to work correctly with REST framework APIs.</p> <p><a href="https://github.com/ottoyiu/">Otto Yiu</a> maintains the <a href="https://github.com/ottoyiu/django-cors-headers/">django-cors-headers</a> package, which is known to work correctly with REST framework APIs.</p>
</div> <!--/span-->
</div> </div> <!--/row-->
<!--/span--> </div> <!--/.fluid-container-->
</div> </div> <!--/.body content-->
<!--/row-->
</div>
<!--/.fluid-container-->
</div>
<!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> </div> <!--/.wrapper -->
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a>
...@@ -425,10 +404,10 @@ ...@@ -425,10 +404,10 @@
<script src="../../js/theme.js"></script> <script src="../../js/theme.js"></script>
<script> <script>
//$('.side-nav').scrollspy()
var shiftWindow = function() { var shiftWindow = function() {
scrollBy(0, -50) scrollBy(0, -50)
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
...@@ -436,12 +415,12 @@ ...@@ -436,12 +415,12 @@
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
$(function() { $(function() {
$(window).resize(function() { $(window).resize(function() {
$('.side-nav').css('max-height', window.innerHeight - 130); $('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130);
}); });
}); });
</script> </script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment