diff --git a/js/base.js b/js/base.js
index c176cc403..957ccad17 100644
--- a/js/base.js
+++ b/js/base.js
@@ -57,10 +57,10 @@ document.addEventListener("DOMContentLoaded", function () {
var page;
switch (key) {
case shortcuts.next:
- page = document.querySelector('.navbar a[rel="next"]:first').getAttribute('href');
+ page = document.querySelector('.navbar a[rel="next"]');
break;
case shortcuts.previous:
- page = document.querySelector('.navbar a[rel="prev"]:first').getAttribute('href');
+ page = document.querySelector('.navbar a[rel="prev"]');
break;
case shortcuts.search:
e.preventDefault();
@@ -74,9 +74,9 @@ document.addEventListener("DOMContentLoaded", function () {
break;
default: break;
}
- if (page) {
+ if (page && page.hasAttribute('href')) {
keyboard_modal.hide();
- window.location.href = page;
+ window.location.href = page.getAttribute('href');
}
});
@@ -91,7 +91,7 @@ document.addEventListener("DOMContentLoaded", function () {
// First, close any sibling dropdowns.
var container = item.parentElement.parentElement;
- container.querySelectorAll('> .dropdown-submenu > a').forEach(function(el) {
+ container.querySelectorAll(':scope > .dropdown-submenu > a').forEach(function(el) {
if (el !== item) {
hideInnerDropdown(el);
}
@@ -118,8 +118,14 @@ document.addEventListener("DOMContentLoaded", function () {
item.classList.remove('open');
popup.scrollTop = 0;
- popup.querySelector('.dropdown-menu').scrollTop = 0;
- popup.querySelector('.dropdown-submenu > a').classList.remove('open');
+ var menu = popup.querySelector('.dropdown-menu');
+ if (menu) {
+ menu.scrollTop = 0;
+ }
+ var dropdown = popup.querySelector('.dropdown-submenu > a');
+ if (dropdown) {
+ dropdown.classList.remove('open');
+ }
}
document.querySelectorAll('.dropdown-submenu > a').forEach(function(item) {
@@ -138,7 +144,10 @@ document.addEventListener("DOMContentLoaded", function () {
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');
+ var dropdown = menu.querySelector('.dropdown-submenu > a');
+ if (dropdown) {
+ dropdown.classList.remove('open');
+ }
menu.querySelectorAll('.dropdown-menu .dropdown-menu').forEach(function(submenu) {
submenu.classList.remove('show');
});
diff --git a/sitemap.xml b/sitemap.xml
index a43b9fde1..0b4a4f2ba 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -3,346 +3,277 @@
https://www.django-rest-framework.org/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/authentication/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/caching/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/content-negotiation/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/exceptions/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/fields/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/filtering/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/format-suffixes/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/generic-views/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/metadata/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/pagination/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/parsers/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/permissions/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/relations/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/renderers/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/requests/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/responses/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/reverse/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/routers/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/schemas/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/serializers/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/settings/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/status-codes/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/testing/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/throttling/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/validators/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/versioning/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/views/
2026-02-05
- daily
https://www.django-rest-framework.org/api-guide/viewsets/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.0-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.1-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.10-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.11-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.12-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.13-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.14-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.15-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.16-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.2-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.3-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.4-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.5-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.6-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.7-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.8-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/3.9-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/contributing/
2026-02-05
- daily
https://www.django-rest-framework.org/community/jobs/
2026-02-05
- daily
https://www.django-rest-framework.org/community/kickstarter-announcement/
2026-02-05
- daily
https://www.django-rest-framework.org/community/mozilla-grant/
2026-02-05
- daily
https://www.django-rest-framework.org/community/project-management/
2026-02-05
- daily
https://www.django-rest-framework.org/community/release-notes/
2026-02-05
- daily
https://www.django-rest-framework.org/community/third-party-packages/
2026-02-05
- daily
https://www.django-rest-framework.org/community/tutorials-and-resources/
2026-02-05
- daily
https://www.django-rest-framework.org/topics/ajax-csrf-cors/
2026-02-05
- daily
https://www.django-rest-framework.org/topics/browsable-api/
2026-02-05
- daily
https://www.django-rest-framework.org/topics/browser-enhancements/
2026-02-05
- daily
https://www.django-rest-framework.org/topics/documenting-your-api/
2026-02-05
- daily
https://www.django-rest-framework.org/topics/html-and-forms/
2026-02-05
- daily
https://www.django-rest-framework.org/topics/internationalization/
2026-02-05
- daily
https://www.django-rest-framework.org/topics/rest-hypermedia-hateoas/
2026-02-05
- daily
https://www.django-rest-framework.org/topics/writable-nested-serializers/
2026-02-05
- daily
https://www.django-rest-framework.org/tutorial/1-serialization/
2026-02-05
- daily
https://www.django-rest-framework.org/tutorial/2-requests-and-responses/
2026-02-05
- daily
https://www.django-rest-framework.org/tutorial/3-class-based-views/
2026-02-05
- daily
https://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/
2026-02-05
- daily
https://www.django-rest-framework.org/tutorial/5-relationships-and-hyperlinked-apis/
2026-02-05
- daily
https://www.django-rest-framework.org/tutorial/6-viewsets-and-routers/
2026-02-05
- daily
https://www.django-rest-framework.org/tutorial/quickstart/
2026-02-05
- daily
\ No newline at end of file
diff --git a/sitemap.xml.gz b/sitemap.xml.gz
index ce6cc6e66..42c3f145b 100644
Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ