A Django content management system focused on flexibility and user experience
WAGTAIL_DATE_FORMAT
, WAGTAIL_DATETIME_FORMAT
, WAGTAIL_TIME_FORMAT
are correctly configured (Rohit Sharma, Coen van der Kamp)IndexView
using the generic.IndexView
(Rohit Sharma, Sage Abdullah, Storm Heg)IndexView
using the generic.IndexView
(Rohit Sharma, Sage Abdullah, Temidayo Azeez)PageListingViewSet
for custom per-page-type page listings (Matt Westcott)ChooseParentView
to PageListingViewSet
to allow creating pages from custom page listings (Abdelrahman Hamada, Sage Abdullah)djangorestframework
to 3.15.1 (Sage Abdullah)IndexView.list_display
(Abdelrahman Hamada)STORAGES
alias name for WAGTAILIMAGES_RENDITION_STORAGE
(Alec Baron)PASSWORD_REQUIRED_TEMPLATE
setting to WAGTAIL_PASSWORD_REQUIRED_TEMPLATE
with deprecation of previous naming (Saksham Misra, LB (Ben) Johnston)DOCUMENT_PASSWORD_REQUIRED_TEMPLATE
setting to WAGTAILDOCS_PASSWORD_REQUIRED_TEMPLATE
with deprecation of previous naming (Saksham Misra, LB (Ben) Johnston)get_parent
(Nigel van Keulen)__str__
for MySQL search index (Jake Howard)date
objects on human_readable_date
template tag (Jhonatan Lopes)verbose_name
in group edit view when listing custom permissions (Sage Abdullah, Neeraj Yetheendran, Omkar Jadhav)make livehtml
(Sage Abdullah)LANGUAGE_CODE
(Mark Niehues)UnsavedController
checks for nested removal/additions of inputs so that the unsaved warning shows in more valid cases when editing a page (Karthik Ayangar)get_add_url()
is always used to re-render the add button when the listing is refreshed in viewsets (Sage Abdullah)objects
manager (Jhonatan Lopes)get_dummy_request
's resulting host name when running tests with ALLOWED_HOSTS = ["*"]
(David Buxton)timesince_last_update
template tag (Matt Westcott)w-kbd-scope-value
with support for global
so that specific keyboard shortcuts (e.g. ctrl+s/cmd+s) trigger consistently even when focused on fields (Neeraj Yetheendran)WAGTAIL_ALLOW_UNICODE_SLUGS
setting when auto-generating slugs (LB (Ben) Johnston)--purge-only
in wagtail_update_image_renditions
management command section (Pranith Beeram)6.3.0
with a fix for the missing favicon (Sage Abdullah)wagtail_update_image_renditions
management command on the using images page (LB (Ben) Johnston)html.parser
(Jake Howard)html.parser
& remove html5lib
dependency (Jake Howard)Button
that only renders links (a element) to Link
and remove unused prop & behavior that was non-compliant for aria role usage (Advik Kabra)wagtail.models.AbstractWorkflow
model to support future customizations around workflows (Hossein)classnames
template tag to handle nested lists of strings, use template tag for admin body
element (LB (Ben) Johnston)UploadedDocument
and UploadedImage
into new UploadedFile
model for easier shared code usage (Advik Kabra, Karl Hobley)window.chooserUrls
globals, removing the need for inline scripts (Elhussein Almasri)w-init
(InitController) to support a detail
value to be dispatched on events (Chiemezuo Akujobi)page_breadcrumbs
tag to use shared breadcrumbs.html
template (Sage Abdullah)keyboard
icon to admin icon set (Rohit Sharma)SwapController
(LB (Ben) Johnston)w-block
/BlockController
) to instantiate StreamField
blocks (Karthik Ayangar)w-kbd
/KeyboardController
) (Neeraj Yetheendran)xregexp
(IE11 polyfill) along with window.XRegExp
global util (LB (Ben) Johnston)urlify
to use TypeScript, officially deprecate window.URLify
global util (LB (Ben) Johnston)make livehtml
(Sage Abdullah)get_add_url()
is always used to re-render the add button when the listing is refreshed in viewsets (Sage Abdullah)modal-workflow.js
script usage to base admin template instead of ad-hoc imports so that choosers work in ModelViewSet
s (Elhussein Almasri)InlinePanel
is included by default in ModelViewSet
's create and edit views (Sage Abdullah)extra_footer_actions
block in page create/edit templates (LB (Ben) Johnston, Sage Abdullah)6.3.0
with a fix for the missing favicon (Sage Abdullah)BooleanRadioSelect
uses the same styles as RadioSelect
(Thibaud Colas)collectstatic
when ManifestStaticFilesStorage
is in use (Matt Westcott)🎉 Special 10th anniversary release! 🎉
search_index
option to StreamField blocks to control whether the block is indexed for searching (Vedant Pandey)UniqueConstraint
in place of unique_together
for TranslatableMixin
's system check (Temidayo Azeez, Sage Abdullah)IndexView.get_add_url()
in snippets index view template (Christer Jensen, Sage Abdullah)Page.permissions_for_user()
to be overridden by specific page types (SĂ©bastien Corbin)extra_actions
blocks to Snippets and generic index templates (Bhuvnesh Sharma)panels
/ edit_handler
on ModelViewSet
(Sage Abdullah)PagePermissionPolicy
in wagtail.permissions
module (Sage Abdullah)max_length
(Elhussein Almasri)TypedTableBlock
(Tommaso Amici, Cynthia Kiser)TableBlock
header controls to a field that requires user input (Bhuvnesh Sharma, Aman Pandey, Cynthia Kiser)WAGTAILADMIN_LOGIN_URL
setting to allow customising the login URL (Neeraj Yetheendran)DrilldownController
and w-drilldown
component to support drilldown menus (Thibaud Colas)caption
on admin UI Table component (Aman Pandey)SnippetViewSet
& ModelViewSet
to support being copied (Shlomo Markowitz)STORAGES
setting introduced in Django 4.2 (phijma-leukeleu)index_results.html
or index_results_template_name
override on initial load (Stefan Hammer)last_published_by_user
(Chiemezuo Akujobi)alias
and specific
(Tomasz Knapik)ActionController
explicitly checks for elements that allow select functionality (Nandini Arora)FormSubmissionsPanel
on Django 5.0 when creating a new form page (Matt Westcott)MultipleChooserPanel
modal works correctly when USE_THOUSAND_SEPARATOR
is True
for pages with ids over 1,000 (Sankalp, Rohit Sharma)th
) for visual spacing, ensure this is ignored by accessibility tooling (V Rohitansh)SiteSetting.DoesNotExist
error when retrieving settings for an unrecognised site (Nick Smith)exclude_fields_in_copy
are correctly excluded in new copies, resolving to the default value (Elhussein Almasri)default_ordering
set on IndexView is preserved if ModelViewSet does not specify an explicit ordering (Cynthia Kiser)_()
within templates (Chiemezuo Akujobi)Page
model reference get_children
documentation (Salvo Polizzi)get_upload_to
methods (Osaf AliSayed, Dharmik Gangani)body.ready
) from multiple JavaScript implementations to one Stimulus controller w-init
(Chiemezuo Akujobi)arg=_('...')
in all wagtailadmin
module templates (Chiemezuo Akujobi)ruff
and replace black
with ruff format
(John-Scott Atlakson)laces
library (Tibor Leupold){% formattedfield %}
tag to replace direct use of wagtailadmin/shared/field.html
(Matt Westcott)ActionController
to have a noop
method to more easily leverage standalone Stimulus action options (Nandini Arora)skipLibCheck
for TypeScript (LB (Ben) Johnston)CloneController
to auto clear the added content after a set duration (LB (Ben) Johnston)BaseListingView
(Matt Westcott)c-
, o-
, u-
, t-
, is-
prefixes (Thibaud Colas)initTooltips
in favour of Stimulus controller (LB (Ben) Johnston)InitController
to allow for custom event dispatching when ready (Aditya, LB (Ben) Johnston)UnsavedController
(Sai Srikar Dumpeti, LB (Ben) Johnston)OrderableController
with a more accessible solution (Aman Pandey, LB (Ben) Johnston)FileResponse
when serving files such as Images or Documents (Jake Howard)WidgetWithScript
base widget class (LB (Ben) Johnston)search_index
option to StreamField blocks to control whether the block is indexed for searching (Vedant Pandey)UniqueConstraint
in place of unique_together
for TranslatableMixin
's system check (Temidayo Azeez, Sage Abdullah)IndexView.get_add_url()
in snippets index view template (Christer Jensen, Sage Abdullah)Page.permissions_for_user()
to be overridden by specific page types (SĂ©bastien Corbin)extra_actions
blocks to Snippets and generic index templates (Bhuvnesh Sharma)panels
/ edit_handler
on ModelViewSet
(Sage Abdullah)PagePermissionPolicy
in wagtail.permissions
module (Sage Abdullah)max_length
(Elhussein Almasri)TypedTableBlock
(Tommaso Amici, Cynthia Kiser)TableBlock
header controls to a field that requires user input (Bhuvnesh Sharma, Aman Pandey, Cynthia Kiser)WAGTAILADMIN_LOGIN_URL
setting to allow customising the login URL (Neeraj Yetheendran)DrilldownController
and w-drilldown
component to support drilldown menus (Thibaud Colas)caption
on admin UI Table component (Aman Pandey)SnippetViewSet
& ModelViewSet
to support being copied (Shlomo Markowitz)STORAGES
setting introduced in Django 4.2 (phijma-leukeleu)index_results.html
or index_results_template_name
override on initial load (Stefan Hammer)last_published_by_user
(Chiemezuo Akujobi)alias
and specific
(Tomasz Knapik)ActionController
explicitly checks for elements that allow select functionality (Nandini Arora)FormSubmissionsPanel
on Django 5.0 when creating a new form page (Matt Westcott)MultipleChooserPanel
modal works correctly when USE_THOUSAND_SEPARATOR
is True
for pages with ids over 1,000 (Sankalp, Rohit Sharma)th
) for visual spacing, ensure this is ignored by accessibility tooling (V Rohitansh)SiteSetting.DoesNotExist
error when retrieving settings for an unrecognised site (Nick Smith)exclude_fields_in_copy
are correctly excluded in new copies, resolving to the default value (Elhussein Almasri)default_ordering
set on IndexView is preserved if ModelViewSet does not specify an explicit ordering (Cynthia Kiser)_()
within templates (Chiemezuo Akujobi)Page
model reference get_children
documentation (Salvo Polizzi)body.ready
) from multiple JavaScript implementations to one Stimulus controller w-init
(Chiemezuo Akujobi)arg=_('...')
in all wagtailadmin
module templates (Chiemezuo Akujobi)ruff
and replace black
with ruff format
(John-Scott Atlakson)laces
library (Tibor Leupold){% formattedfield %}
tag to replace direct use of wagtailadmin/shared/field.html
(Matt Westcott)ActionController
to have a noop
method to more easily leverage standalone Stimulus action options (Nandini Arora)skipLibCheck
for TypeScript (LB (Ben) Johnston)CloneController
to auto clear the added content after a set duration (LB (Ben) Johnston)BaseListingView
(Matt Westcott)c-
, o-
, u-
, t-
, is-
prefixes (Thibaud Colas)initTooltips
in favour of Stimulus controller (LB (Ben) Johnston)InitController
to allow for custom event dispatching when ready (Aditya, LB (Ben) Johnston)UnsavedController
(Sai Srikar Dumpeti, LB (Ben) Johnston)OrderableController
with a more accessible solution (Aman Pandey, LB (Ben) Johnston)FileResponse
when serving files such as Images or Documents (Jake Howard)WidgetWithScript
base widget class (LB (Ben) Johnston)FormSubmissionsPanel
on Django 5.0 when creating a new form page (Matt Westcott)index_results.html
or index_results_template_name
override on initial load (Stefan Hammer)last_published_by_user
(Chiemezuo Akujobi)decorate_paginated_queryset
before pagination / filtering (Alex Tomkins){% picture ... as ... %}
template tag (Rezyapkin)wagtailcache
& wagtailpagecache
(Jake Howard)field.html
template (Sage Abdullah)SnippetViewSet
menu registration mechanism to base ViewSet
class (Sage Abdullah)ModelViewSet
(Sage Abdullah)SnippetViewSet
template override mechanism to ModelViewSet
(Sage Abdullah)SnippetViewSet.list_display
to ModelViewSet
(Sage Abdullah)wagtail.publish
log action on aliases when they are created from live source pages or the source page is published (Dan Braghis)wagtail.unpublish
log action on aliases when source page is unpublished (Dan Braghis)IndexView
(Sage Abdullah)list_filter
, filterset_class
, search_fields
, search_backend_name
, list_export
, export_filename
, list_per_page
, and ordering
from SnippetViewSet
to ModelViewSet
(Sage Abdullah, Cynthia Kiser)IndexView
and CreateView
(Sage Abdullah)IndexView.export_headings
via ModelViewSet
(Christer Jensen, Sage Abdullah)get_object_list
method on ChooserViewSet
(Matt Westcott)linked_fields
mechanism on chooser widgets to allow choices to be limited by fields on the calling page (Matt Westcott)TableBlock
with the mergedCells
option (Gareth Palmer)InlinePanel
, focus will now shift to that content similar to StreamField
(Faishal Manzar)placement
in the human_readable_date
tooltip template tag (Rohit Sharma)ModelViewSet
views (Sage Abdullah){% component %}
tag (Matt Westcott)PagesAPIViewSet
override default Page model via the model
attribute (Neeraj Yetheendran, Herbert Poul)ModelViewSet
to be used with models that have non-integer primary keys (Sage Abdullah)HistoryView
from snippets and add it to ModelViewSet
(Sage Abdullah)UsageView
to ModelViewSet
(Sage Abdullah)IndexView
(Sage Abdullah)wagtail_update_image_renditions
management command (Faishal Manzar)hashlib.file_digest
if available (Python 3.11+) (Jake Howard)Block.get_template
to allow varying template based on value (Florian Delizy)InlinePanel
DOM events for when ready and when items added or removed (Faishal Manzar)picture
template tag for Django Templates and Jinja (Thibaud Colas)srcset_image
template tag for Django Templates and Jinja (Thibaud Colas)Filter
instances as input for AbstractImage.get_renditions()
(Thibaud Colas)FieldPanel('title')
examples to use the recommended TitleFieldPanel('title')
panel (Chinedu Ihedioha)purge_revisions
management command now respects revisions that have a on_delete=PROTECT
foreign key relation and won't delete them (Neeraj P Yetheendran, Meghana Reddy, Sage Abdullah, Storm Heg)FieldBlock
s correctly set the required
and aria-describedby
attributes (Storm Heg)PublishMenuItem
to more easily support overriding its label via construct_page_action_menu
(SĂ©bastien Corbin)non_fields_errors
for any custom form validation (SĂ©bastien Corbin)WAGTAIL_EMAIL_MANAGEMENT_ENABLED
setting by not showing 'email' if disabled (Omkar Jadhav)ViewSet
and ModelViewSet
(Sage Abdullah)WAGTAILADMIN_BASE_URL
on "Integrating Wagtail into a Django project" page (Shreshth Srivastava)WAGTAILADMIN_RICH_TEXT_EDITORS
setting (Charlie Sue)python3-venv
on Ubuntu (Brian Mugo)WagtailTestUtils.get_soup()
method for testing HTML content (Storm Heg, Sage Abdullah)ViewSet
subclasses to customise url_prefix
and url_namespace
logic (Matt Westcott)SnippetViewSet
registration code (Sage Abdullah)IndexView.results_template_name
to results.html
(Sage Abdullah)w-bulk
Stimulus implementation (LB (Ben) Johnston)w-message
controller (LB (Ben) Johnston, Hussain Saherwala)stubs.js
to prevent Storybook from crashing (LB (Ben) Johnston)slim_header.html
template (Sage Abdullah)slim_header.html
template to reduce code duplication (Sage Abdullah)imghdr
(Jake Howard)imghdr
with Willow's built-in MIME type detection (Jake Howard)data-tippy
HTML attribute usage to the Stimulus data-*-value attributes for w-tooltip & w-dropdown (Subhajit Ghosh, LB (Ben) Johnston)@total_ordering
usage with comparison functions implementation (Virag Jain)<script type="text/django-form-template"><-/script>
template approach with HTML template
elements in InlinePanel and expanding formset (Mansi Gundre, Subhajit Ghosh, LB (Ben) Johnston)ModelViewSet
and SnippetViewSet
(Sage Abdullah)lru_cache
usage (Jake Howard)date_since
in get_most_popular
inside search_promotions.models.Query
(TopDevPros)classname
(not classnames
) attributes for all MenuItem
usage, including deprecation warnings (LB (Ben) Johnston)classname
(not classnames
) attribute within the wagtail.images.formats.Format
instance, including deprecation warnings (LB (Ben) Johnston)context
argument of construct_snippet_listing_buttons
hook (Sage Abdullah)search.Query
& search.QueryDailyHits
model, move final set of templates from the admin search module to the search promotions contrib module (LB (Ben) Johnston)InspectView
to ModelViewSet
(Sage Abdullah)reset
method to support Stimulus driven dynamic field resets via the w-action
controller (Chiemezuo Akujobi)notify
target on the Stimulus dialog for dispatching events internally (Chiemezuo Akujobi)