Wagtail 6.4 release notes - IN DEVELOPMENT

Unreleased

What’s new

Other features

  • Add the ability to apply basic Page QuerySet optimizations to specific() sub-queries using select_related & prefetch_related, see Page QuerySet reference (Andy Babic)

  • Increase DATA_UPLOAD_MAX_NUMBER_FIELDS in project template (Matt Westcott)

Bug fixes

  • Improve handling of translations for bulk page action confirmation messages (Matt Westcott)

  • Ensure custom rich text feature icons are correctly handled when provided as a list of SVG paths (Temidayo Azeez, Joel William, LB (Ben) Johnston)

  • Ensure manual edits to StreamField values do not throw an error (Stefan Hammer)

  • Fix sub-menus within the main menu cannot be closed on mobile (Bojan Mihelac)

  • Fix animation overflow transition when navigating through subpages in the sidebar page explorer (manu)

  • Ensure form builder supports custom admin form validation (John-Scott Atlakson, LB (Ben) Johnston)

  • Ensure form builder correctly checks for duplicate field names when using a custom related name (John-Scott Atlakson, LB (Ben) Johnston)

Documentation

  • Move the model reference page from reference/pages to the references section as it covers all Wagtail core models (Srishti Jaiswal)

  • Move the panels reference page from references/pages to the references section as panels are available for any model editing, merge panels API into this page (Srishti Jaiswal)

  • Move the tags documentation to standalone advanced topic for tagging, instead of being inside the reference/pages section (Srishti Jaiswal)

  • Refine the Adding reports page so that common (page/non-page) class references are at the top and the full page only example has correct heading nesting (Alessandro Chitarrini)

  • Add the wagtail start command to the management commands reference page (Damilola Oladele)

  • Refine the The project template page sections and document common issues encountered when creating custom templates (Damilola Oladele)

  • Refine titles, references and URLS to better align with the documentation style guide, including US spelling (Srishti Jaiswal)

  • Recommend a larger DATA_UPLOAD_MAX_NUMBER_FIELDS when integrating Wagtail into Django (Matt Westcott)

  • Improve code highlighting and formatting for Python docstrings in core models (Srishti Jaiswal)

  • Update all JavaScript inline scripts & some CSS inline style tags to a CSP compliant approach by using external scripts/styles (Aayushman Singh)

  • Update usage of mark_safe to format_html for any script inclusions, to better avoid XSS issues from example code (Aayushman Singh)

  • Update documentation writing guidelines to encourage better considerations of security, accessibility and good practice when writing code examples (Aayushman Singh, LB (Ben) Johnston)

  • Update documentation guidelines on writing links and API reference (Sage Abdullah)

  • Replace absolute URLs with intersphinx links where possible to avoid broken links (Sage Abdullah)

  • Document usage of Custom validation for admin form pages when using AbstractEmailForm or AbstractForm pages (John-Scott Atlakson, LB (Ben) Johnston)

Maintenance

  • Close open files when reading within utils/setup.py (Ataf Fazledin Ahamed)

  • Avoid redundant ALLOWED_HOSTS check in Site.find_for_request (Jake Howard)

  • Update CloneController to ensure that added/cleared events are not dispatched as cancelable (LB (Ben) Johnston)

  • Remove unused uuid UMD module as all code is now using the NPM module (LB (Ben) Johnston)

  • Clean up JS comments throughout codebase to be aligned to JSDoc where practical (LB (Ben) Johnston)

  • Replace eslint-disable no-undef linter directives with global comments (LB (Ben) Johnston)

  • Upgrade Node tooling to active LTS version 22 (LB (Ben) Johnston)

  • Remove defunct oEmbed providers (Rahul Samant)

  • Remove obsolete non-upsert-based code for Postgres search indexing (Jake Howard)

  • Remove unused Rangy JS library (LB (Ben) Johnston)

  • Update PreviewController usage to leverage Stimulus actions instead of calling preventDefault manually (Ayaan Qadri)

  • Various performance optimizations to page publishing (Jake Howard)

Upgrade considerations - changes affecting all projects

DATA_UPLOAD_MAX_NUMBER_FIELDS update

It’s recommended that all projects set the DATA_UPLOAD_MAX_NUMBER_FIELDS setting to 10000 or higher.

This specifies the maximum number of fields allowed in a form submission, and it is recommended to increase this from Django’s default of 1000, as particularly complex page models can exceed this limit within Wagtail’s page editor:

# settings.py
DATA_UPLOAD_MAX_NUMBER_FIELDS = 10_000

Upgrade considerations - deprecation of old functionality

Upgrade considerations - changes affecting Wagtail customizations

Upgrade considerations - changes to undocumented internals

Removal of unused Rangy JS library

The unused JavaScript include wagtailadmin/js/vendor/rangy-core.js has been removed from the editor interface, and functions such as window.rangy.getSelection() are no longer available. Any code relying on this should now either supply its own copy of the Rangy library, or be migrated to the official Document.createRange() browser API.