Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Django + htmx patterns

This repo is a rough-and-ready compilation of the patterns I’m using and developing when writing Django projects that use htmx.

The docs are intended to be viewed on GitHub: and the code can be run locally or on (see below)

My aims are to document and share:

  1. The basic patterns and control flow needed
  2. Some enhancements we can make with a few utilities

The code presented depends only on Django and htmx, unless otherwise noted. I wont be packaging it up as a library. It is instead being released into the public domain, and you are encouraged to copy-paste it for your own needs. (See the “Approach” docs for why).

There are some Django packages that provide shortcuts for some of the things mentioned here, such as django-htmx, but I won’t be using any of them for the sake of clarity.

This is a work in progress, I’ll try to keep it up to date. PRs welcome.


  • Combined vs separate view functions
  • Patterns for use with django-functest

Code folder

In the code folder is a demo app which has full working examples of everything in the docs. You can see it live on at and you can fork it from to play around with the code.

To install locally, use a virtualenv, and then either use poetry or see the code/requirements.txt file for pip.


Your feedback is very welcome! Star this repo if you like it, and please share ideas on discussions.


Some other good htmx resources:

If you liked this repo, you might also be helped by some of my other resources: