Skip to content

Commit e03c9b1

Browse files
authored
Dropped support for Django versions prior to 5.2. (#217)
* Dropped Django 4.2, 5.0 and 5.1. Following release of Django 6.0 in December 2025 it is suggested that 3rd-party apps drop support for all versions of Django prior to 5.2. https://docs.djangoproject.com/en/6.0/releases/6.0/
1 parent 7a95d7f commit e03c9b1

40 files changed

Lines changed: 32 additions & 924 deletions

.github/workflows/publish.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ jobs:
1212
fail-fast: false
1313
matrix:
1414
python-version:
15-
- "3.9"
1615
- "3.10"
1716
- "3.11"
1817
- "3.12"

.github/workflows/test.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
python-version:
17-
- "3.9"
1817
- "3.10"
1918
- "3.11"
2019
- "3.12"

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22

33
## 2025.11 (TBC)
44
* Confirmed support for Django 6.0.
5+
* Dropped support for Django 4.2, 5.0 and 5.1.
56
* Added support for Python 3.14.
6-
* Dropped support for Python 3.8.
7+
* Dropped support for Python 3.8 and 3.9.
78

89
## 2025.6 (2025-06-08)
910
* `<legend>` elements now have `fs-6` class so they are the same font size as `<labels>`.

crispy_bootstrap5/templates/bootstrap5/layout/field_errors.html

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
{% if form_show_errors and field.errors %}
2-
{% if field.errors.field_id %}
3-
{# Django 5.2+ #}
4-
<div id="{{field.errors.field_id}}_error" class="invalid-feedback">
5-
{% else %}
6-
<div id="{{field.auto_id}}_error" class="invalid-feedback">
7-
{% endif %}
2+
<div id="{{field.errors.field_id}}_error" class="invalid-feedback">
83
{% for error in field.errors %}
94
<span id="error_{{ forloop.counter }}_{{ field.auto_id }}"><strong>{{ error }}</strong></span>
105
{% endfor %}

crispy_bootstrap5/templates/bootstrap5/layout/field_errors_block.html

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
{% if form_show_errors and field.errors %}
2-
{% if field.errors.field_id %}
3-
{# Django 5.2+ #}
4-
<div id="{{field.errors.field_id}}_error"class="invalid-feedback">
5-
{% else %}
6-
<div id="{{field.auto_id}}_error" class="invalid-feedback">
7-
{% endif %}
2+
<div id="{{field.errors.field_id}}_error"class="invalid-feedback">
83
{% for error in field.errors %}
94
<p id="error_{{ forloop.counter }}_{{ field.auto_id }}"><strong>{{ error }}</strong></p>
105
{% endfor %}

crispy_bootstrap5/templates/bootstrap5/layout/field_with_buttons.html

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,13 @@
2424
{% endif %}
2525
{{ buttons|safe }}
2626
</div>
27-
{% if field.errors.field_id %}
28-
{# Django 5.2+ #}
29-
<div id="{{field.errors.field_id}}_error">
30-
{% else %}
31-
<div id="{{field.auto_id}}_error">
32-
{% endif %}
27+
{% if field.errors %}
28+
<div id="{{field.errors.field_id}}_error">
3329
{% for error in field.errors %}
3430
<p id="error_{{ forloop.counter }}_{{ field.auto_id }}" class="text-danger mb-0"><small><strong>{{ error }}</strong></small></p>
3531
{% endfor %}
3632
</div>
33+
{% endif %}
3734
{% include 'bootstrap5/layout/help_text.html' %}
3835
</div>
3936
</div>

crispy_bootstrap5/templates/bootstrap5/layout/radio_checkbox_select.html

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,7 @@
2020

2121
</div>
2222
{% if field.errors and inline_class %}
23-
{% if field.errors.field_id %}
24-
{# Django 5.2+ #}
25-
<div id="{{field.errors.field_id}}_error" class="invalid-feedback">
26-
{% else %}
27-
<div id="{{field.auto_id}}_error" class="invalid-feedback">
28-
{% endif %}
23+
<div id="{{field.errors.field_id}}_error" class="invalid-feedback">
2924
{% for error in field.errors %}
3025
<p id="error_{{ forloop.counter }}_{{ field.auto_id }}"><strong>{{ error }}</strong></p>
3126
{% endfor %}

pyproject.toml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,10 @@ requires-python = ">=3.9"
1212
classifiers=[
1313
"Environment :: Web Environment",
1414
"Framework :: Django",
15-
"Framework :: Django :: 4.2",
16-
"Framework :: Django :: 5.0",
17-
"Framework :: Django :: 5.1",
1815
"Framework :: Django :: 5.2",
1916
"Framework :: Django :: 6.0",
2017
"Operating System :: OS Independent",
2118
"Programming Language :: Python :: 3 :: Only",
22-
"Programming Language :: Python :: 3.9",
2319
"Programming Language :: Python :: 3.10",
2420
"Programming Language :: Python :: 3.11",
2521
"Programming Language :: Python :: 3.12",

tests/results/field_with_buttons.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
<input class="form-control inputtext textInput textinput" id="id_email" aria-describedby="id_email_helptext"
88
maxlength="30" name="email" required type="text">
99
<a class="btn btn-primary" role="button">click me</a></div>
10-
<div id="id_email_error"></div>
1110
<div class="form-text" id="id_email_helptext">Insert your email</div>
1211
</div>
1312
</div>

tests/results/field_with_buttons_failing_lt50.html

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)