{% extends "adminlte/page.html" %} {% block page_title %}Native form{% endblock %} {% block breadcrumb %}
This page renders {{ form }} — nothing else. The Bootstrap 5 markup
(labels, selects, checkbox, validation states, help text) comes entirely from
FORM_RENDERER = "django_adminlte4.forms.AdminLTEFormRenderer" in settings.
Submit it empty to see the is-invalid / invalid-feedback states.
The renderer swaps Django's form/field templates for AdminLTE-themed ones, project-wide:
# settings.py
FORM_RENDERER = "django_adminlte4.forms.AdminLTEFormRenderer"
Every {{ form }} in the project — function-based views, generic CBVs,
UserCreationForm — renders themed automatically. Prefer fine-grained layout
control? The Contacts CRUD shows the
crispy-forms integration instead; both ship with the package.