| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 4.2 source code.tar.gz | 2026-08-05 | 26.2 MB | |
| 4.2 source code.zip | 2026-08-05 | 26.9 MB | |
| README.md | 2026-08-05 | 5.6 kB | |
| Totals: 3 Items | 53.2 MB | 0 | |
This release focuses on the dashboard experience — bulk actions and search in the catalogue — alongside Django 6 support and a handful of correctness fixes in checkout and order placement.
Highlights
- Django 6 support —
StartsWithis now implemented as aLookuprather than a subclass, resolving the incompatibility tracked in [#4557]. - Reworked catalogue bulk actions — select across all pages, bulk-toggle public visibility, and a redesigned bulk action flow in the catalogue dashboard.
- Granular dashboard permissions — dashboard views now support custom, per-permission checks instead of a single blanket check.
- Node Sass removed — the build toolchain now uses Dart Sass only.
Upgrade notes
- Django 6 is now supported. (#4564)
- django-treebeard 5.0 is now supported. If you subclass
Categoryor its manager, note that the manager now correctly subclasses Treebeard's manager, which silences a startup warning. (#4556, [#4583]) - Node Sass has been removed from the frontend build. If you compile Oscar's styles in your own pipeline, switch to Dart Sass. (#4568)
ShippingEventQuantityhas been extended, andcodefields were added to the address and product review models — review your migrations if you have forked these models. (#4577, [#4551], [#4552])
Dashboard
- Add custom granular permission checks for dashboards — by [@mfarhan943](https://github.com/mfarhan943) (#4507)
- Rework bulk actions in the catalogue dashboard — by [@mr-sphere](https://github.com/mr-sphere) (#4570)
- Add a category search form — by [@samar-hassan](https://github.com/samar-hassan) (#4536)
- Add an option to select objects across all pages — by [@samar-hassan](https://github.com/samar-hassan) (#4535)
- Bulk update public visibility in the product and category listings — by [@samar-hassan](https://github.com/samar-hassan) (#4537)
- Allow all heading levels in the TinyMCE editor — by [@mr-sphere](https://github.com/mr-sphere) (#4595)
- Make email search more flexible — by [@samar-hassan](https://github.com/samar-hassan) (#4558)
- Add missing search fields to the Django admin models — by [@samar-hassan](https://github.com/samar-hassan) (#4543)
Checkout & orders
- Allow guest checkout for customers who already have an account — by [@samar-hassan](https://github.com/samar-hassan) (#4581)
- Prevent deadlock between concurrent order placements — by [@samar-hassan](https://github.com/samar-hassan) (#4594)
- Preserve basket line order when creating order lines — by [@samar-hassan](https://github.com/samar-hassan) (#4598)
- Add a hook for choosing which attributes are copied to new lines — by [@viggo-devries](https://github.com/viggo-devries) (#4582)
- Exit early when a product has no options — by [@mr-sphere](https://github.com/mr-sphere) (#4578)
Models
- Extend the
ShippingEventQuantitymodel — by [@samar-hassan](https://github.com/samar-hassan) (#4577) - Add
codeto the address models — by [@samar-hassan](https://github.com/samar-hassan) (#4551) - Add
codeto product reviews — by [@samar-hassan](https://github.com/samar-hassan) (#4552) - Add email to the report — by [@wiktor-highbiza](https://github.com/wiktor-highbiza) (#4576)
Compatibility
- Support Django 6 by replacing the
StartsWithsubclass with aLookup(fixes [#4557]) — by [@jobcase-ebrake](https://github.com/jobcase-ebrake) (#4564) - Compatibility with django-treebeard 5.0 — by [@solarissmoke](https://github.com/solarissmoke) (#4556)
- Fix warning caused by the
Categorymanager not subclassing Treebeard's manager — by [@solarissmoke](https://github.com/solarissmoke) (#4583) - Remove Node Sass — by [@jwayodi](https://github.com/jwayodi) (#4568)
Fixes
- Correct the namespace for
notifications-inbox— by [@janheini](https://github.com/janheini) (#4567) - Define bulk action variables in the
__init__method — by [@samar-hassan](https://github.com/samar-hassan) (#4538)
Documentation
- Remove the broken Transifex link from the README — by [@yachikadev](https://github.com/yachikadev) (#4571)
New contributors
Thanks to everyone who contributed for the first time in this release:
- [@janheini](https://github.com/janheini) (#4567)
- [@jobcase-ebrake](https://github.com/jobcase-ebrake) (#4564)
- [@wiktor-highbiza](https://github.com/wiktor-highbiza) (#4576)
- [@yachikadev](https://github.com/yachikadev) (#4571)
Full changelog: https://github.com/django-oscar/django-oscar/compare/4.1...4.2