- Drop Django 3.2 to 4.1 support.
Drop Python 3.8 support.
Support Python 3.13.
Updated :ref:`the partial rendering tip <partial-rendering>` to cover using django-template-partials.
Thanks to Carlton Gibson in PR #413.
Add :func:`django_htmx.http.replace_url` for setting the
HX-Replace-URL
header.Thanks to Bogumil Schube in PR #396.
Add
select
parameter to :class:`.HttpResponseLocation`.Thanks to Nikola Anović in PR #462.
Add documentation notes under :class:`.HtmxMiddleware`, covering setting the
Vary
header for caching and type hintingrequest.htmx
.
- Support Django 5.1.
Change
reswap()
type hint formethod
tostr
.Thanks to Dan Jacob for the report in Issue #421 and fix in PR #422.
- Fix asgiref dependency declaration.
Fix ASGI compatibility on Python 3.12.
Thanks to Grigory Vydrin for the report in Issue #381.
- Support Django 5.0.
Drop Python 3.7 support.
Remove the unnecessary
type
attribute on the<script>
tag generated bydjango_htmx_script
.Allow custom JSON encoders in
trigger_client_event()
.Thanks to Joey Lange in PR #349.
- Support Python 3.12.
- Support Django 4.2.
Make the
params
argument of :func:`.trigger_client_event` optional.Thanks to Chris Tapper in PR #263.
Add :func:`django_htmx.http.push_url` for setting the
HX-Push-URL
header.Thanks to Chris Tapper in PR #264.
Add :func:`django_htmx.http.reswap` for setting the
HX-Reswap
header added in htmx 1.8.0.Add :func:`django_htmx.http.retarget` for setting the
HX-Retarget
header added in htmx 1.6.1.Add :class:`.HttpResponseLocation` for sending a response with the
HX-Location
header.Thanks to Ben Beecher in PR #239.
Add :attr:`request.htmx.current_url_abs_path <.current_url_abs_path>`, the absolute-path form of
request.current_url
.Thanks to Trey Hunner for the feature request in Issue #259.
Improve type hints for
trigger_client_event()
by using aTypeVar
.Thanks to Chris Tapper in PR #260.
- Override
HttpResponseClientRedirect.url
property to fixHttpResponseClientRedirect.__repr__
.
- Support Python 3.11.
- Support Django 4.1.
- Drop support for Django 2.2, 3.0, and 3.1.
- Make
trigger_client_event()
return the response. - Add async support to
HtmxMiddleware
to reduce overhead on async views.
Move documentation from the README to Read the Docs. Also expand it with sections on installing htmx, and configuring CSRF.
Thanks to Ben Beecher for intial setup in PR #194.
Add
HttpResponseClientRefresh
for telling htmx to reload the page.Thanks to Bogumil Schube in PR #193.
- Drop Python 3.6 support.
Use
DjangoJSONEncoder
for encoding theHX-Trigger
event.Thanks to Cleiton de Lima in PR #182.
Drop redundant 'async' from debug
<script>
tag.
Add
HttpResponseClientRedirect
class for sending HTMX client-side redirects.Thanks to Julio César in PR #121.
Add
django_htmx.http.trigger_client_event()
for triggering client side events.
- Support Python 3.10.
- Support the
HX-Boosted
header, which was added in htmx 1.6.0. This is parsed into therequest.htmx.boosted
attribute.
- Support Django 4.0.
- Make extension script error handler also show 404 errors.
Installation now requires adding
"django_htmx"
to yourINSTALLED_APPS
setting.Add extension script with debug error handler. To install it, follow the new instructions in the README.
htmx’s default behaviour is to discard error responses. The extension overrides this in debug mode to shows Django’s debug error responses.
Add
django_htmx.http
module withHttpResponseStopPolling
class andHTMX_STOP_POLLING
constant.
- Support the
HX-History-Restore-Request
header, which was added in htmx 1.2.0. This is parsed into therequest.htmx.history_restore_request
attribute. - Support the
Triggering-Event
header, which is sent by the event-header extension. This is parsed into therequest.htmx.triggering_event
attribute. - Stop distributing tests to reduce package size. Tests are not intended to be run outside of the tox setup in the repository. Repackagers can use GitHub's tarballs per tag.
- Remove
X-HTTP-Method-Override
handling fromHtmxMiddleware
. This has not been needed since htmx 0.0.5, when use of the header was extracted to itsmethod-override
extension in htmx commit 2305ae.
- Add
HtmxMiddleware
which handles request headers from htmx. - Add example app on GitHub repository which demonstrates using django-htmx features.
- Remove the
{% htmx_script %}
template tag. Include htmx on your pages yourself - this allows you to better customize the way htmx is installed to suit your project - for example by using theasync
script attribute or by bundling it with extensions. - Remove the
HTMXViewMixin
,{% htmx_include %}
and{% htmx_attrs %}
tags. Partial rendering can be done more with a simpler techinque - see the demo page in the example app, added in Pull Request #30.
- This version and those before explored what's possible with htmx and django, but were not documented.