Deployed ccfe0a96 with MkDocs version: 1.2.4

This commit is contained in:
Tom Christie 2024-07-05 16:57:31 +01:00
parent 2c8d1f13db
commit 6c5a36ce4d
36 changed files with 2942 additions and 395 deletions

View File

@ -549,10 +549,11 @@
<h3 id="3152"><a class="toclink" href="#3152">3.15.2</a></h3>
<p><strong>Date</strong>: 14th June 2024</p>
<ul>
<li>Fix potential XSS vulnerability in browsable API. <a href="https://github.com/encode/django-rest-framework/pull/9157">#9435</a></li>
<li>Fix potential XSS vulnerability in browsable API. <a href="https://github.com/encode/django-rest-framework/pull/9435">#9435</a></li>
<li>Revert "Ensure CursorPagination respects nulls in the ordering field". <a href="https://github.com/encode/django-rest-framework/pull/9381">#9381</a></li>
<li>Use warnings rather than logging a warning for DecimalField. <a href="https://github.com/encode/django-rest-framework/pull/9367">#9367</a></li>
<li>Remove unused code. <a href="https://github.com/encode/django-rest-framework/pull/9393">#9393</a></li>
<li>Django &lt; 4.2 and Python &lt; 3.8 no longer supported. <a href="https://github.com/encode/django-rest-framework/pull/9393">#9393</a></li>
</ul>
<h3 id="3151"><a class="toclink" href="#3151">3.15.1</a></h3>
<p>Date: 22nd March 2024</p>

View File

@ -429,6 +429,10 @@
<a href="#existing-third-party-packages">Existing Third Party Packages</a>
</li>
<li>
<a href="#async-support">Async Support</a>
</li>
<div class="promo">
@ -470,6 +474,10 @@
<p>Django REST Framework has a growing community of developers, packages, and resources.</p>
<p>Check out a grid detailing all the packages and ecosystem around Django REST Framework at <a href="https://www.djangopackages.com/grids/g/django-rest-framework/">Django Packages</a>.</p>
<p>To submit new content, <a href="https://github.com/encode/django-rest-framework/issues/new">open an issue</a> or <a href="https://github.com/encode/django-rest-framework/compare">create a pull request</a>.</p>
<h2 id="async-support"><a class="toclink" href="#async-support">Async Support</a></h2>
<ul>
<li><a href="https://github.com/em1208/adrf">adrf</a> - Async support, provides async Views, ViewSets, and Serializers.</li>
</ul>
<h3 id="authentication"><a class="toclink" href="#authentication">Authentication</a></h3>
<ul>
<li><a href="https://github.com/juanriaza/django-rest-framework-digestauth">djangorestframework-digestauth</a> - Provides Digest Access Authentication support.</li>

View File

@ -1,7 +1,9 @@
html {
/* csslint ignore:start */
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
main container. */
scroll-padding-top: calc(3.5rem + 20px);
/* csslint ignore:end */
}
/* Replacement for `body { background-attachment: fixed; }`, which has
@ -13,7 +15,7 @@ body::before {
height: 100%;
top: 0;
left: 0;
background-color: var(--bs-body-bg);
background-color: #f8f8f8;
background: url(../img/grid.png) repeat-x;
will-change: transform;
z-index: -1;
@ -24,9 +26,11 @@ body > .container {
min-height: 400px;
}
.navbar.fixed-top {
.navbar.fixed-top { /* csslint allow: adjoining-classes */
/* csslint ignore:start */
position: -webkit-sticky;
position: sticky;
/* csslint ignore:end */
}
.source-links {
@ -38,33 +42,32 @@ body > .container {
display: inline-block;
padding: 4px;
line-height: 1.428571429;
background-color: var(--bs-secondary-bg-subtle);
border: 1px solid var(--bs-secondary-border-subtle);
background-color: #fff;
border: 1px solid #ddd;
border-radius: 4px;
margin: 20px auto 30px auto;
}
h1 {
color: inherit;
color: #444;
font-weight: 400;
font-size: 42px;
}
h2, h3, h4, h5, h6 {
color: inherit;
color: #444;
font-weight: 300;
}
hr {
border-top: 1px solid #aaa;
opacity: 1;
}
pre, .rst-content tt {
max-width: 100%;
background-color: var(--bs-body-bg);
border: solid 1px var(--bs-border-color);
color: var(--bs-body-color);
background: #fff;
border: solid 1px #e1e4e5;
color: #333;
overflow-x: auto;
}
@ -74,15 +77,16 @@ code.code-large, .rst-content tt.code-large {
code {
padding: 2px 5px;
background-color: rgba(var(--bs-body-bg-rgb), 0.75);
border: solid 1px var(--bs-border-color);
color: var(--bs-body-color);
background: #fff;
border: solid 1px #e1e4e5;
color: #333;
white-space: pre-wrap;
word-wrap: break-word;
}
pre code {
display: block;
background: transparent;
border: none;
white-space: pre;
word-wrap: normal;
@ -93,19 +97,19 @@ pre code {
kbd {
padding: 2px 4px;
font-size: 90%;
color: var(--bs-secondary-text-emphasis);
background-color: var(--bs-secondary-bg-subtle);
color: #fff;
background-color: #333;
border-radius: 3px;
-webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
}
a code {
color: inherit;
color: #2FA4E7;
}
a:hover code, a:focus code {
color: inherit;
color: #157AB5;
}
footer {
@ -126,15 +130,17 @@ footer {
* sections of docs content.
*/
.bs-sidebar.affix {
.bs-sidebar.affix { /* csslint allow: adjoining-classes */
/* csslint ignore:start */
position: -webkit-sticky;
position: sticky;
/* csslint ignore:end */
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
main container. */
top: calc(3.5rem + 20px);
}
.bs-sidebar.card {
.bs-sidebar.card { /* csslint allow: adjoining-classes */
padding: 0;
max-height: 90%;
overflow-y: auto;
@ -149,7 +155,7 @@ footer {
transform: scale(1, -1);
}
.bs-sidebar .navbar-toggler.collapsed span {
.bs-sidebar .navbar-toggler.collapsed span { /* csslint allow: adjoining-classes */
-moz-transform: scale(1, 1);
-webkit-transform: scale(1, 1);
-o-transform: scale(1, 1);
@ -201,20 +207,15 @@ footer {
font-size: 14px;
display: none;
padding-left: .5em;
text-decoration: none;
vertical-align: middle;
}
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink {
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink{
display:inline-block;
}
blockquote {
padding-left: 10px;
border-left: 4px solid #e6e6e6;
}
.admonition, details {
.admonition {
padding: 15px;
margin-bottom: 20px;
border: 1px solid transparent;
@ -222,90 +223,39 @@ blockquote {
text-align: left;
}
.admonition.note, details.note {
color: var(--bs-primary-text-emphasis);
background-color: var(--bs-primary-bg-subtle);
border-color: var(--bs-primary-border-subtle);
.admonition.note { /* csslint allow: adjoining-classes */
color: #3a87ad;
background-color: #d9edf7;
border-color: #bce8f1;
}
.admonition.note h1, .admonition.note h2, .admonition.note h3,
.admonition.note h4, .admonition.note h5, .admonition.note h6,
details.note h1, details.note h2, details.note h3,
details.note h4, details.note h5, details.note h6 {
color: var(--bs-primary-text-emphasis);
.admonition.warning { /* csslint allow: adjoining-classes */
color: #c09853;
background-color: #fcf8e3;
border-color: #fbeed5;
}
.admonition.info, details.info {
color: var(--bs-info-text-emphasis);
background-color: var(--bs-info-bg-subtle);
border-color: var(--bs-info-border-subtle);
.admonition.danger { /* csslint allow: adjoining-classes */
color: #b94a48;
background-color: #f2dede;
border-color: #eed3d7;
}
.admonition.info h1, .admonition.info h2, .admonition.info h3,
.admonition.info h4, .admonition.info h5, .admonition.info h6,
details.info h1, details.info h2, details.info h3,
details.info h4, details.info h5, details.info h6 {
color: var(--bs-info-text-emphasis);
}
.admonition.warning, details.warning {
color: var(--bs-warning-text-emphasis);
background-color: var(--bs-warning-bg-subtle);
border-color: var(--bs-warning-border-subtle);
}
.admonition.warning h1, .admonition.warning h2, .admonition.warning h3,
.admonition.warning h4, .admonition.warning h5, .admonition.warning h6,
details.warning h1, details.warning h2, details.warning h3,
details.warning h4, details.warning h5, details.warning h6 {
color: var(--bs-warning-text-emphasis);
}
.admonition.danger, details.danger {
color: var(--bs-danger-text-emphasis);
background-color: var(--bs-danger-bg-subtle);
border-color: var(--bs-danger-border-subtle);
}
.admonition.danger h1, .admonition.danger h2, .admonition.danger h3,
.admonition.danger h4, .admonition.danger h5, .admonition.danger h6,
details.danger h1, details.danger h2, details.danger h3,
details.danger h4, details.danger h5, details.danger h6 {
color: var(--bs-danger-text-emphasis);
}
.admonition, details {
color: var(--bs-light-text-emphasis);
background-color: var(--bs-light-bg-subtle);
border-color: var(--bs-light-border-subtle);
}
.admonition h1, .admonition h2, .admonition h3,
.admonition h4, .admonition h5, .admonition h6,
details h1, details h2, details h3,
details h4, details h5, details h6 {
color: var(--bs-light-text-emphasis);
}
.admonition-title, summary {
.admonition-title {
font-weight: bold;
text-align: left;
}
.admonition>p:last-child, details>p:last-child {
margin-bottom: 0;
}
@media (max-width: 991.98px) {
.navbar-collapse.show {
.navbar-collapse.show { /* csslint allow: adjoining-classes */
overflow-y: auto;
max-height: calc(100vh - 3.5rem);
}
}
.dropdown-item.open {
color: var(--bs-dropdown-link-active-color);
background-color: var(--bs-dropdown-link-active-bg);
.dropdown-item.open { /* csslint allow: adjoining-classes */
color: #fff;
background-color: #2FA4E7;
}
.dropdown-submenu > .dropdown-menu {
@ -323,13 +273,13 @@ details h4, details h5, details h6 {
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: var(--bs-dropdown-link-active-color);
border-left-color: #ccc;
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover > a::after {
border-left-color: var(--bs-dropdown-link-active-color);
border-left-color: #fff;
}
@media (min-width: 992px) {
@ -343,18 +293,20 @@ details h4, details h5, details h6 {
}
.dropdown-submenu > .dropdown-menu {
/* csslint ignore:start */
position: fixed !important;
/* csslint ignore:end */
margin-top: -9px;
margin-left: -2px;
border-width: 1px;
padding: 0.5rem 0;
}
.dropdown-submenu.pull-left {
.dropdown-submenu.pull-left { /* csslint allow: adjoining-classes */
float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
.dropdown-submenu.pull-left > .dropdown-menu { /* csslint allow: adjoining-classes */
left: -100%;
margin-left: 10px;
}

18
css/bootstrap.min.css vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

6
css/brands.min.css vendored

File diff suppressed because one or more lines are too long

4
css/font-awesome.min.css vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

6
css/solid.min.css vendored
View File

@ -1,6 +0,0 @@
/*!
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2023 Fonticons, Inc.
*/
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}

View File

@ -1,6 +0,0 @@
/*!
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2023 Fonticons, Inc.
*/
@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -555,10 +555,11 @@ continued development by <strong><a href="community/funding/">signing up for a p
<li><a href="https://cryptapi.io" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/cryptapi.png)">CryptAPI</a></li>
<li><a href="https://www.fezto.xyz/?utm_source=DjangoRESTFramework" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/fezto.png)">FEZTO</a></li>
<li><a href="https://www.svix.com/?utm_source=django-REST&utm_medium=sponsorship" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/svix.png)">Svix</a></li>
<li><a href="https://zuplo.link/django-web" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/zuplo.png)">Zuplo</a></li>
</ul>
<div style="clear: both; padding-bottom: 20px;"></div>
<p><em>Many thanks to all our <a href="https://fund.django-rest-framework.org/topics/funding/#our-sponsors">wonderful sponsors</a>, and in particular to our premium backers, <a href="https://getsentry.com/welcome/">Sentry</a>, <a href="https://getstream.io/?utm_source=DjangoRESTFramework&amp;utm_medium=Webpage_Logo_Ad&amp;utm_content=Developer&amp;utm_campaign=DjangoRESTFramework_Jan2022_HomePage">Stream</a>, <a href="https://www.spacinov.com/">Spacinov</a>, <a href="https://retool.com/?utm_source=djangorest&amp;utm_medium=sponsorship">Retool</a>, <a href="https://bit.io/jobs?utm_source=DRF&amp;utm_medium=sponsor&amp;utm_campaign=DRF_sponsorship">bit.io</a>, <a href="https://posthog.com?utm_source=DRF&amp;utm_medium=sponsor&amp;utm_campaign=DRF_sponsorship">PostHog</a>, <a href="https://cryptapi.io">CryptAPI</a>, <a href="https://www.fezto.xyz/?utm_source=DjangoRESTFramework">FEZTO</a>, and <a href="https://www.svix.com/?utm_source=django-REST&amp;utm_medium=sponsorship">Svix</a>.</em></p>
<p><em>Many thanks to all our <a href="https://fund.django-rest-framework.org/topics/funding/#our-sponsors">wonderful sponsors</a>, and in particular to our premium backers, <a href="https://getsentry.com/welcome/">Sentry</a>, <a href="https://getstream.io/?utm_source=DjangoRESTFramework&amp;utm_medium=Webpage_Logo_Ad&amp;utm_content=Developer&amp;utm_campaign=DjangoRESTFramework_Jan2022_HomePage">Stream</a>, <a href="https://www.spacinov.com/">Spacinov</a>, <a href="https://retool.com/?utm_source=djangorest&amp;utm_medium=sponsorship">Retool</a>, <a href="https://bit.io/jobs?utm_source=DRF&amp;utm_medium=sponsor&amp;utm_campaign=DRF_sponsorship">bit.io</a>, <a href="https://posthog.com?utm_source=DRF&amp;utm_medium=sponsor&amp;utm_campaign=DRF_sponsorship">PostHog</a>, <a href="https://cryptapi.io">CryptAPI</a>, <a href="https://www.fezto.xyz/?utm_source=DjangoRESTFramework">FEZTO</a>, <a href="https://www.svix.com/?utm_source=django-REST&amp;utm_medium=sponsorship">Svix</a>, , and <a href="https://zuplo.link/django-web">Zuplo</a>.</em></p>
<hr />
<h2 id="requirements"><a class="toclink" href="#requirements">Requirements</a></h2>
<p>REST framework requires the following:</p>

View File

@ -13,152 +13,157 @@ function applyTopPadding() {
// Update various absolute positions to match where the main container
// starts. This is necessary for handling multi-line nav headers, since
// that pushes the main container down.
var container = document.querySelector('body > .container');
var offset = container.offsetTop;
document.documentElement.style.scrollPaddingTop = offset + 'px';
document.querySelectorAll('.bs-sidebar.affix').forEach(function(sidebar) {
sidebar.style.top = offset + 'px';
});
var offset = $('body > .container').offset();
$('html').css('scroll-padding-top', offset.top + 'px');
$('.bs-sidebar.affix').css('top', offset.top + 'px');
}
document.addEventListener("DOMContentLoaded", function () {
var search_term = getSearchTerm();
var search_modal = new bootstrap.Modal(document.getElementById('mkdocs_search_modal'));
var keyboard_modal = new bootstrap.Modal(document.getElementById('mkdocs_keyboard_modal'));
$(document).ready(function() {
applyTopPadding();
var search_term = getSearchTerm(),
$search_modal = $('#mkdocs_search_modal'),
$keyboard_modal = $('#mkdocs_keyboard_modal');
if (search_term) {
search_modal.show();
$search_modal.modal();
}
// make sure search input gets autofocus every time modal opens.
document.getElementById('mkdocs_search_modal').addEventListener('shown.bs.modal', function() {
document.getElementById('mkdocs-search-query').focus();
$search_modal.on('shown.bs.modal', function() {
$search_modal.find('#mkdocs-search-query').focus();
});
// Close search modal when result is selected
// The links get added later so listen to parent
document.getElementById('mkdocs-search-results').addEventListener('click', function(e) {
if (e.target.tagName === 'A') {
search_modal.hide();
$('#mkdocs-search-results').click(function(e) {
if ($(e.target).is('a')) {
$search_modal.modal('hide');
}
});
// Populate keyboard modal with proper Keys
document.querySelector('.help.shortcut kbd').innerHTML = keyCodes[shortcuts.help];
document.querySelector('.prev.shortcut kbd').innerHTML = keyCodes[shortcuts.previous];
document.querySelector('.next.shortcut kbd').innerHTML = keyCodes[shortcuts.next];
document.querySelector('.search.shortcut kbd').innerHTML = keyCodes[shortcuts.search];
$keyboard_modal.find('.help.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.help];
$keyboard_modal.find('.prev.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.previous];
$keyboard_modal.find('.next.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.next];
$keyboard_modal.find('.search.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.search];
// Keyboard navigation
document.addEventListener("keydown", function(e) {
if (e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA') return true;
var key = e.which || e.keyCode || window.event && window.event.keyCode;
var page;
switch (key) {
case shortcuts.next:
page = document.querySelector('.navbar a[rel="next"]:first').getAttribute('href');
break;
case shortcuts.previous:
page = document.querySelector('.navbar a[rel="prev"]:first').getAttribute('href');
break;
case shortcuts.search:
e.preventDefault();
keyboard_modal.hide();
search_modal.show();
document.getElementById('mkdocs-search-query').focus();
break;
case shortcuts.help:
search_modal.hide();
keyboard_modal.show();
break;
default: break;
}
if (page) {
keyboard_modal.hide();
window.location.href = page;
}
if ($(e.target).is(':input')) return true;
var key = e.which || e.keyCode || window.event && window.event.keyCode;
var page;
switch (key) {
case shortcuts.next:
page = $('.navbar a[rel="next"]:first').prop('href');
break;
case shortcuts.previous:
page = $('.navbar a[rel="prev"]:first').prop('href');
break;
case shortcuts.search:
e.preventDefault();
$keyboard_modal.modal('hide');
$search_modal.modal('show');
$search_modal.find('#mkdocs-search-query').focus();
break;
case shortcuts.help:
$search_modal.modal('hide');
$keyboard_modal.modal('show');
break;
default: break;
}
if (page) {
$keyboard_modal.modal('hide');
window.location.href = page;
}
});
document.querySelectorAll('table').forEach(function(table) {
table.classList.add('table', 'table-striped', 'table-hover');
$('table').addClass('table table-striped table-hover');
// Improve the scrollspy behaviour when users click on a TOC item.
$(".bs-sidenav a").on("click", function() {
var clicked = this;
setTimeout(function() {
var active = $('.nav li.active a');
active = active[active.length - 1];
if (clicked !== active) {
$(active).parent().removeClass("active");
$(clicked).parent().addClass("active");
}
}, 50);
});
function showInnerDropdown(item) {
var popup = item.nextElementSibling;
popup.classList.add('show');
item.classList.add('open');
var popup = $(item).next('.dropdown-menu');
popup.addClass('show');
$(item).addClass('open');
// First, close any sibling dropdowns.
var container = item.parentElement.parentElement;
container.querySelectorAll('> .dropdown-submenu > a').forEach(function(el) {
if (el !== item) {
hideInnerDropdown(el);
}
});
// First, close any sibling dropdowns.
var container = $(item).parent().parent();
container.find('> .dropdown-submenu > a').each(function(i, el) {
if (el !== item) {
hideInnerDropdown(el);
}
});
var popupMargin = 10;
var maxBottom = window.innerHeight - popupMargin;
var bounds = item.getBoundingClientRect();
var popupMargin = 10;
var maxBottom = $(window).height() - popupMargin;
var bounds = item.getBoundingClientRect();
popup.style.left = bounds.right + 'px';
if (bounds.top + popup.clientHeight > maxBottom &&
bounds.top > window.innerHeight / 2) {
popup.style.top = (bounds.bottom - popup.clientHeight) + 'px';
popup.style.maxHeight = (bounds.bottom - popupMargin) + 'px';
} else {
popup.style.top = bounds.top + 'px';
popup.style.maxHeight = (maxBottom - bounds.top) + 'px';
}
popup.css('left', bounds.right + 'px');
if (bounds.top + popup.height() > maxBottom &&
bounds.top > $(window).height() / 2) {
popup.css({
'top': (bounds.bottom - popup.height()) + 'px',
'max-height': (bounds.bottom - popupMargin) + 'px',
});
} else {
popup.css({
'top': bounds.top + 'px',
'max-height': (maxBottom - bounds.top) + 'px',
});
}
}
function hideInnerDropdown(item) {
var popup = item.nextElementSibling;
popup.classList.remove('show');
item.classList.remove('open');
var popup = $(item).next('.dropdown-menu');
popup.removeClass('show');
$(item).removeClass('open');
popup.scrollTop = 0;
popup.querySelector('.dropdown-menu').scrollTop = 0;
popup.querySelector('.dropdown-submenu > a').classList.remove('open');
popup.scrollTop(0);
popup.find('.dropdown-menu').scrollTop(0).removeClass('show');
popup.find('.dropdown-submenu > a').removeClass('open');
}
document.querySelectorAll('.dropdown-submenu > a').forEach(function(item) {
item.addEventListener('click', function(e) {
if (item.nextElementSibling.classList.contains('show')) {
hideInnerDropdown(item);
} else {
showInnerDropdown(item);
}
$('.dropdown-submenu > a').on('click', function(e) {
if ($(this).next('.dropdown-menu').hasClass('show')) {
hideInnerDropdown(this);
} else {
showInnerDropdown(this);
}
e.stopPropagation();
e.preventDefault();
});
e.stopPropagation();
e.preventDefault();
});
document.querySelectorAll('.dropdown-menu').forEach(function(menu) {
menu.parentElement.addEventListener('hide.bs.dropdown', function() {
menu.scrollTop = 0;
menu.querySelector('.dropdown-submenu > a').classList.remove('open');
menu.querySelectorAll('.dropdown-menu .dropdown-menu').forEach(function(submenu) {
submenu.classList.remove('show');
});
});
$('.dropdown-menu').parent().on('hide.bs.dropdown', function(e) {
$(this).find('.dropdown-menu').scrollTop(0);
$(this).find('.dropdown-submenu > a').removeClass('open');
$(this).find('.dropdown-menu .dropdown-menu').removeClass('show');
});
applyTopPadding();
});
window.addEventListener('resize', applyTopPadding);
$(window).on('resize', applyTopPadding);
var scrollSpy = new bootstrap.ScrollSpy(document.body, {
target: '.bs-sidebar'
$('body').scrollspy({
target: '.bs-sidebar',
offset: 100
});
/* Prevent disabled links from causing a page reload */
document.querySelectorAll("li.disabled a").forEach(function(item) {
item.addEventListener("click", function(event) {
event.preventDefault();
});
$("li.disabled a").click(function() {
event.preventDefault();
});
// See https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

7
js/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,65 +0,0 @@
function setColorMode(mode) {
// Switch between light/dark theme. `mode` is a string value of either 'dark' or 'light'.
var hljs_light = document.getElementById('hljs-light'),
hljs_dark = document.getElementById('hljs-dark');
document.documentElement.setAttribute('data-bs-theme', mode);
if (mode == 'dark') {
hljs_light.disabled = true;
hljs_dark.disabled = false;
} else {
hljs_dark.disabled = true;
hljs_light.disabled = false;
}
}
function updateModeToggle(mode) {
// Update icon and toggle checkmarks of color mode selector.
var menu = document.getElementById('theme-menu');
document.querySelectorAll('[data-bs-theme-value]')
.forEach(function(toggle) {
if (mode == toggle.getAttribute('data-bs-theme-value')) {
toggle.setAttribute('aria-pressed', 'true');
toggle.lastElementChild.classList.remove('d-none');
menu.firstElementChild.setAttribute('class', toggle.firstElementChild.getAttribute('class'));
} else {
toggle.setAttribute('aria-pressed', 'false');
toggle.lastElementChild.classList.add('d-none');
}
});
}
function onSystemColorSchemeChange(event) {
// Update site color mode to match system color mode.
setColorMode(event.matches ? 'dark' : 'light');
}
var mql = window.matchMedia('(prefers-color-scheme: dark)'),
defaultMode = document.documentElement.getAttribute('data-bs-theme'),
storedMode = localStorage.getItem('mkdocs-colormode');
if (storedMode && storedMode != 'auto') {
setColorMode(storedMode);
updateModeToggle(storedMode);
} else if (storedMode == 'auto' || defaultMode == 'auto') {
setColorMode(mql.matches ? 'dark' : 'light');
updateModeToggle('auto');
mql.addEventListener('change', onSystemColorSchemeChange);
} else {
setColorMode(defaultMode);
updateModeToggle(defaultMode);
}
document.querySelectorAll('[data-bs-theme-value]')
.forEach(function(toggle) {
toggle.addEventListener('click', function (e) {
var mode = e.currentTarget.getAttribute('data-bs-theme-value');
localStorage.setItem('mkdocs-colormode', mode);
if (mode == 'auto') {
setColorMode(mql.matches ? 'dark' : 'light');
mql.addEventListener('change', onSystemColorSchemeChange);
} else {
setColorMode(mode);
mql.removeEventListener('change', onSystemColorSchemeChange);
}
updateModeToggle(mode);
});
});

6
js/jquery-1.10.2.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -3456,7 +3456,7 @@ lunr.QueryParser.parseBoost = function (parser) {
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* only CommonJS-like enviroments that support module.exports,
* like Node.
*/
module.exports = factory()

View File

@ -21,15 +21,8 @@ function joinUrl (base, path) {
return base + "/" + path;
}
function escapeHtml (value) {
return value.replace(/&/g, '&amp;')
.replace(/"/g, '&quot;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');
}
function formatResult (location, title, summary) {
return '<article><h3><a href="' + joinUrl(base_url, location) + '">'+ escapeHtml(title) + '</a></h3><p>' + escapeHtml(summary) +'</p></article>';
return '<article><h3><a href="' + joinUrl(base_url, location) + '">'+ title + '</a></h3><p>' + summary +'</p></article>';
}
function displayResults (results) {

File diff suppressed because one or more lines are too long

View File

@ -2,347 +2,347 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.django-rest-framework.org/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/authentication/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/caching/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/content-negotiation/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/exceptions/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/fields/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/filtering/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/format-suffixes/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/generic-views/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/metadata/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/pagination/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/parsers/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/permissions/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/relations/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/renderers/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/requests/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/responses/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/reverse/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/routers/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/schemas/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/serializers/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/settings/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/status-codes/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/testing/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/throttling/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/validators/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/versioning/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/views/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/api-guide/viewsets/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.0-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.1-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.10-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.11-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.12-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.13-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.14-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.15-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.2-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.3-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.4-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.5-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.6-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.7-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.8-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/3.9-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/contributing/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/funding/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/jobs/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/kickstarter-announcement/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/mozilla-grant/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/project-management/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/release-notes/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/third-party-packages/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/community/tutorials-and-resources/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/topics/ajax-csrf-cors/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/topics/browsable-api/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/topics/browser-enhancements/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/topics/documenting-your-api/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/topics/html-and-forms/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/topics/internationalization/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/topics/rest-hypermedia-hateoas/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/topics/writable-nested-serializers/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/tutorial/1-serialization/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/tutorial/2-requests-and-responses/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/tutorial/3-class-based-views/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/tutorial/5-relationships-and-hyperlinked-apis/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/tutorial/6-viewsets-and-routers/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.django-rest-framework.org/tutorial/quickstart/</loc>
<lastmod>2024-06-14</lastmod>
<lastmod>2024-07-05</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.