Skip to main content

A Django app to handle HTMX page reloads.

Project description

This is a Django app to handle full-page reloads with HTMX.

There are two possible use-cases for this app.

Quick start

  1. django-htmx-refresh relies on the django-htmx package. You can install it with pip:

pip install django-htmx
  1. Add “django_htmx_refresh” to your INSTALLED_APPS setting:

INSTALLED_APPS = [
    ...
    'django_htmx_refresh',
]
  1. Include an app namespace for your project’s urls:

path('app_path', include(('app.urls', 'app_namespace'))),

Middleware

For when you want to handle htmx requests in all the views of a particular app.

  1. Create a new list in your settings called HTMX_APPS:

HTMX_APPS = [
    'app_namespace'
]

This is so our custom middleware class only affects apps we explicity define, preventing errors with other third-party apps such as the default django admin application.

  1. Add HtmxResponseMiddleware to the MIDDLEWARE setting:

MIDDLEWARE = [
    ...
    'django_htmx_refresh.middleware.HtmxResponseMiddleware',
]

Note: The HtmxReseponseMiddleware class provided with this application uses the process_template_response hook, meaning any view you intend to be used with this class must return a response object that implements a render method. Luckily Django’s class-based views do this for us with TemplateResponse.

Mixin

For when you want to handle htmx requests in most of your views but not necessarily all of them.

  1. Import the HtmxResponseMixin and add it to your view(s).

from django_htmx_refresh.mixins import HtmxResponseMixin

class ExampleView(TemplateView, HtmxResponseMixin):
    template_name = 'template_name.html'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-htmx-refresh-0.0.7.tar.gz (4.3 kB view hashes)

Uploaded Source

Built Distribution

django_htmx_refresh-0.0.7-py3-none-any.whl (5.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page