mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-25 02:53:58 +03:00
Deployed ccfe0a96
with MkDocs version: 1.2.4
This commit is contained in:
parent
2c8d1f13db
commit
6c5a36ce4d
|
@ -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 < 4.2 and Python < 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>
|
||||
|
|
|
@ -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>
|
||||
|
|
152
css/base.css
152
css/base.css
|
@ -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
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
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
4
css/font-awesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
9
css/fontawesome.min.css
vendored
9
css/fontawesome.min.css
vendored
File diff suppressed because one or more lines are too long
6
css/solid.min.css
vendored
6
css/solid.min.css
vendored
|
@ -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}
|
6
css/v4-font-face.min.css
vendored
6
css/v4-font-face.min.css
vendored
|
@ -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}
|
BIN
fonts/fontawesome-webfont.eot
Normal file
BIN
fonts/fontawesome-webfont.eot
Normal file
Binary file not shown.
2671
fonts/fontawesome-webfont.svg
Normal file
2671
fonts/fontawesome-webfont.svg
Normal file
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 434 KiB |
BIN
fonts/fontawesome-webfont.ttf
Normal file
BIN
fonts/fontawesome-webfont.ttf
Normal file
Binary file not shown.
BIN
fonts/fontawesome-webfont.woff
Normal file
BIN
fonts/fontawesome-webfont.woff
Normal file
Binary file not shown.
BIN
fonts/fontawesome-webfont.woff2
Normal file
BIN
fonts/fontawesome-webfont.woff2
Normal file
Binary file not shown.
BIN
img/premium/zuplo-readme.png
Normal file
BIN
img/premium/zuplo-readme.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
|
@ -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&utm_medium=Webpage_Logo_Ad&utm_content=Developer&utm_campaign=DjangoRESTFramework_Jan2022_HomePage">Stream</a>, <a href="https://www.spacinov.com/">Spacinov</a>, <a href="https://retool.com/?utm_source=djangorest&utm_medium=sponsorship">Retool</a>, <a href="https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship">bit.io</a>, <a href="https://posthog.com?utm_source=DRF&utm_medium=sponsor&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&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&utm_medium=Webpage_Logo_Ad&utm_content=Developer&utm_campaign=DjangoRESTFramework_Jan2022_HomePage">Stream</a>, <a href="https://www.spacinov.com/">Spacinov</a>, <a href="https://retool.com/?utm_source=djangorest&utm_medium=sponsorship">Retool</a>, <a href="https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship">bit.io</a>, <a href="https://posthog.com?utm_source=DRF&utm_medium=sponsor&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&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>
|
||||
|
|
151
js/base.js
151
js/base.js
|
@ -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;
|
||||
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 = document.querySelector('.navbar a[rel="next"]:first').getAttribute('href');
|
||||
page = $('.navbar a[rel="next"]:first').prop('href');
|
||||
break;
|
||||
case shortcuts.previous:
|
||||
page = document.querySelector('.navbar a[rel="prev"]:first').getAttribute('href');
|
||||
page = $('.navbar a[rel="prev"]:first').prop('href');
|
||||
break;
|
||||
case shortcuts.search:
|
||||
e.preventDefault();
|
||||
keyboard_modal.hide();
|
||||
search_modal.show();
|
||||
document.getElementById('mkdocs-search-query').focus();
|
||||
$keyboard_modal.modal('hide');
|
||||
$search_modal.modal('show');
|
||||
$search_modal.find('#mkdocs-search-query').focus();
|
||||
break;
|
||||
case shortcuts.help:
|
||||
search_modal.hide();
|
||||
keyboard_modal.show();
|
||||
$search_modal.modal('hide');
|
||||
$keyboard_modal.modal('show');
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
if (page) {
|
||||
keyboard_modal.hide();
|
||||
$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) {
|
||||
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 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';
|
||||
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.style.top = bounds.top + 'px';
|
||||
popup.style.maxHeight = (maxBottom - bounds.top) + 'px';
|
||||
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);
|
||||
$('.dropdown-submenu > a').on('click', function(e) {
|
||||
if ($(this).next('.dropdown-menu').hasClass('show')) {
|
||||
hideInnerDropdown(this);
|
||||
} else {
|
||||
showInnerDropdown(item);
|
||||
showInnerDropdown(this);
|
||||
}
|
||||
|
||||
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) {
|
||||
$("li.disabled a").click(function() {
|
||||
event.preventDefault();
|
||||
});
|
||||
});
|
||||
|
||||
// See https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
|
||||
|
|
7
js/bootstrap.bundle.min.js
vendored
7
js/bootstrap.bundle.min.js
vendored
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
7
js/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -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
6
js/jquery-1.10.2.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -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()
|
||||
|
|
|
@ -21,15 +21,8 @@ function joinUrl (base, path) {
|
|||
return base + "/" + path;
|
||||
}
|
||||
|
||||
function escapeHtml (value) {
|
||||
return value.replace(/&/g, '&')
|
||||
.replace(/"/g, '"')
|
||||
.replace(/</g, '<')
|
||||
.replace(/>/g, '>');
|
||||
}
|
||||
|
||||
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
138
sitemap.xml
138
sitemap.xml
|
@ -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>
|
BIN
sitemap.xml.gz
BIN
sitemap.xml.gz
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.
Loading…
Reference in New Issue
Block a user