pypi / django-crispy-forms
django-crispy-forms
What changed in django-crispy-forms 1 to 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-26.
4 breaking3 new APIs and options1 performance1 behavior and defaults4 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initdjango-crispy-forms 25 changes
Breaking changes 2
Support for Django 4.2, 5.0 and 5.1 was dropped, so projects using those versions are no longer supported.
Python 3.8 is no longer supported.
Fixes and other changes 3
Support is confirmed for Django 6.1.
Django 6.0 support is confirmed.
Python 3.14 support is confirmed.
django-crispy-forms 18 changes
Breaking changes 2
The project moved from django-uni-form to django-crispy-forms, renaming tags, filters, and modules; migration instructions were added.
Layouts are rendered strictly: fields omitted from the layout are not rendered, and Meta fields or exclude follow Django standards.
New APIs and options 3
BaseInput subclasses such as Submit can now have IDs set using css_id.
A Field layout object lets you wrap name fields, set attributes, or override the widget template.
The helper attribute controls whether form.errors is rendered.
Performance 1
Checking rendered_fields is faster.
Behavior and default changes 1
The template tag can render a form using its attached helper when that FormHelper attribute is named helper, without passing form.helper explicitly.
Fixes and other changes 1
The filter now renders all classes.