HTMX Demo

Example Overview

This example is very similar to the BS5 styling example, and illustrates how to use django_tomselect with HTMX to load dropdown content dynamically on page load. By combining htmx with django_tomselect, you can achieve advanced interactions such as dynamically loaded content without full page reloads. See the bulk actions example for a more advanced htmx use case.

Key features highlighted:

  • Dynamic form rendering with HTMX.

  • Integration with django_tomselect for autocomplete and enhanced dropdown functionality.

Use Case Scenarios:

  • Filtering dropdown options based on user input or selections in other fields.

  • Dynamic form rendering for creating or updating related models.

  • Inline editing or form embedding in modal dialogs.


Key Code Segments

Forms

The Bootstrap5StylingHTMXForm extends Bootstrap5StylingForm, enabling HTMX integration.

  • Purpose: Configures a field to work with HTMX, enabling dynamic content loading.


HTMX Fragment Template

The htmx_fragment.html template defines the dynamic content that will be loaded into the page.


Main HTMX Template

The htmx.html template renders the page and loads the dynamic fragment via HTMX.


Autocomplete View

The backend for autocomplete remains consistent with thr styling examples, but HTMX makes the interaction seamless.


Design and Implementation Notes

Key Features

  • Dynamic Content Loading: Leverages HTMX to dynamically load the form content on page load.

  • Framework Integration: Works seamlessly with django_tomselect and Bootstrap 5.

Design Decisions

  • Reusable Templates: Separates the dynamically loaded form (htmx_fragment.html) from the main template for modularity.