Wagtail 2.7 is designated a Long Term Support (LTS) release. Long Term Support releases will continue to receive maintenance updates as necessary to address security and data-loss related issues, up until the next LTS release (typically a period of 12 months).

Images can now be uploaded and rendered in WebP format; see Image file formats for details. This feature was developed by frmdstryr, Karl Hobley and Matt Westcott.

The design of the StreamField user interface has been updated to improve clarity and usability, including better handling of nested blocks. This work was completed by Bertrand Bordage as part of the Wagtail’s First Hatch crowdfunding campaign. We would like to thank all supporters of the campaign .

Query strings added to static file URLs within the admin¶ To avoid problems caused by outdated cached JavaScript / CSS files following a Wagtail upgrade, URLs to static files within the Wagtail admin now include a version-specific query parameter of the form ?v=1a2b3c4d . Under certain front-end cache configurations (such as Cloudflare’s ‘No Query String’ caching level), the presence of this parameter may prevent the file from being cached at all. If you are using such a setup, and have some other method in place to expire outdated files (e.g. clearing the cache on deployment), you can disable the query parameter by setting WAGTAILADMIN_STATIC_FILE_VERSION_STRINGS to False in your project settings. (Note that this is automatically disabled when ManifestStaticFilesStorage is in use.)

Page.dummy_request is deprecated¶ The internal Page.dummy_request method (which generates an HTTP request object simulating a real page request, for use in previews) has been deprecated, as it did not correctly handle errors generated during middleware processing. Any code that calls this method to render page previews should be updated to use the new method Page.make_preview_request(original_request=None, preview_mode=None) , which builds the request and calls Page.serve_preview as a single operation.

Changes to document serving on remote storage backends (Amazon S3 etc)¶ This release introduces a new setting WAGTAILDOCS_SERVE_METHOD to control how document downloads are served. On previous versions of Wagtail, document files would always be served through a Django view, to allow permission checks to be applied. When using a remote storage backend such as Amazon S3, this meant that the document would be downloaded to the Django server on every download request. In Wagtail 2.7, the default behaviour on remote storage backends is to redirect to the storage’s underlying URL after performing the permission check. If this is unsuitable for your project (for example, your storage provider is configured to block public access, or revealing its URL would be a security risk) you can revert to the previous behaviour by setting WAGTAILDOCS_SERVE_METHOD to 'serve_view' .

Template change for page action menu hooks¶ When customising the action menu on the page edit view through the register_page_action_menu_item or construct_page_action_menu hook, the ActionMenuItem object’s template attribute or render_html method can be overridden to customise the menu item’s HTML. As of Wagtail 2.7, the HTML returned from these should not include the enclosing <li> element. Any add-on library that uses this feature and needs to preserve backward compatibility with previous Wagtail versions can conditionally reinsert the <li> wrapper through its render_html method - for example: from django.utils.html import format_html from wagtail import VERSION as WAGTAIL_VERSION from wagtail.admin.action_menu import ActionMenuItem class CustomMenuItem ( ActionMenuItem ): template = 'myapp/my_menu_item.html' def render_html ( self , request , parent_context ): html = super () . render_html ( request , parent_context ) if WAGTAIL_VERSION < ( 2 , 7 ): html = format_html ( '<li>{}</li>' , html ) return html