Skip to content

Commit 2546bb4

Browse files
committed
Added Django 5.2. support.
1 parent 839374f commit 2546bb4

25 files changed

+411
-73
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## Next Release
44

55
* Added support for Python 3.13.
6+
* Added support for Django 5.2.
67

78
## 2024.10 (2024-10-05)
89

Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
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 %}
28
{% for error in field.errors %}
39
<span id="error_{{ forloop.counter }}_{{ field.auto_id }}" class="invalid-feedback"><strong>{{ error }}</strong></span>
410
{% endfor %}
11+
</div>
512
{% endif %}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
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 %}
28
{% for error in field.errors %}
39
<p id="error_{{ forloop.counter }}_{{ field.auto_id }}" class="invalid-feedback"><strong>{{ error }}</strong></p>
410
{% endfor %}
11+
</div>
512
{% endif %}

setup.py

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ def get_long_description():
4040
"Framework :: Django :: 4.2",
4141
"Framework :: Django :: 5.0",
4242
"Framework :: Django :: 5.1",
43+
"Framework :: Django :: 5.2",
4344
"License :: OSI Approved :: MIT License",
4445
"Operating System :: OS Independent",
4546
"Programming Language :: Python :: 3",

tests/results/bootstrap4/test_form_helper/bootstrap_form_show_errors_bs4_false.html

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<label for="id_email" class=" requiredField"> email<span class="asteriskField">*</span> </label>
44
<div class="">
55
<div class="input-group">
6-
<input type="text" name="email" value="invalidemail" maxlength="30" aria-describedby="id_email_helptext" aria-invalid="true"
6+
<input type="text" name="email" value="invalidemail" maxlength="30" aria-describedby="id_email_helptext id_email_error" aria-invalid="true"
77
class="textinput textInput inputtext form-control is-invalid" required id="id_email" />
88
<div class="input-group-append"><span class="input-group-text">whatever</span></div>
99
</div>
@@ -24,6 +24,7 @@
2424
required
2525
id="id_first_name"
2626
aria-invalid="true"
27+
aria-describedby="id_first_name_error"
2728
/>
2829
</div>
2930
</div>
@@ -33,7 +34,7 @@
3334
<div class="">
3435
<div class="input-group">
3536
<div class="input-group-prepend"><span class="input-group-text">foo</span></div>
36-
<input type="text" name="last_name" value="last_name_too_long" maxlength="5" aria-invalid="true"
37+
<input type="text" name="last_name" value="last_name_too_long" maxlength="5" aria-invalid="true" aria-describedby="id_last_name_error"
3738
class="textinput textInput inputtext form-control is-invalid" required id="id_last_name" />
3839
<div class="input-group-append"><span class="input-group-text">bar</span></div>
3940
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<form method="post">
2+
<div id="div_id_email" class="form-group">
3+
<label for="id_email" class=" requiredField"> email<span class="asteriskField">*</span> </label>
4+
<div class="">
5+
<div class="input-group">
6+
<input type="text" name="email" value="invalidemail" maxlength="30" aria-describedby="id_email_helptext" aria-invalid="true"
7+
class="textinput textInput inputtext form-control is-invalid" required id="id_email" />
8+
<div class="input-group-append"><span class="input-group-text">whatever</span></div>
9+
</div>
10+
<small id="hint_id_email" class="form-text text-muted">Insert your email</small>
11+
</div>
12+
</div>
13+
<div id="div_id_first_name" class="form-group">
14+
<label for="id_first_name" class=" requiredField">first name<span class="asteriskField">*</span> </label>
15+
<div class="">
16+
<div class="input-group">
17+
<div class="input-group-prepend"><span class="input-group-text">blabla</span></div>
18+
<input
19+
type="text"
20+
name="first_name"
21+
value="first_name_too_long"
22+
maxlength="5"
23+
class="textinput textInput inputtext form-control is-invalid"
24+
required
25+
id="id_first_name"
26+
aria-invalid="true"
27+
/>
28+
</div>
29+
</div>
30+
</div>
31+
<div id="div_id_last_name" class="form-group">
32+
<label for="id_last_name" class=" requiredField">last name<span class="asteriskField">*</span> </label>
33+
<div class="">
34+
<div class="input-group">
35+
<div class="input-group-prepend"><span class="input-group-text">foo</span></div>
36+
<input type="text" name="last_name" value="last_name_too_long" maxlength="5" aria-invalid="true"
37+
class="textinput textInput inputtext form-control is-invalid" required id="id_last_name" />
38+
<div class="input-group-append"><span class="input-group-text">bar</span></div>
39+
</div>
40+
</div>
41+
</div>
42+
<div id="div_id_password1" class="form-group">
43+
<label for="id_password1" class=" requiredField">password<span class="asteriskField">*</span> </label>
44+
<div class="">
45+
<div class="input-group">
46+
<input type="password" name="password1" maxlength="30" class="textinput textInput form-control" required id="id_password1" />
47+
<div class="input-group-append"><span class="input-group-text">whatever</span></div>
48+
</div>
49+
</div>
50+
</div>
51+
<div id="div_id_password2" class="form-group">
52+
<label
53+
for="id_password2"
54+
class=" requiredField"
55+
>
56+
re-enter password<span class="asteriskField">*</span>
57+
</label>
58+
<div class="">
59+
<div class="input-group">
60+
<div class="input-group-prepend"><span class="input-group-text">blabla</span></div>
61+
<input
62+
type="password"
63+
name="password2"
64+
maxlength="30"
65+
class="textinput textInput form-control"
66+
required
67+
id="id_password2"
68+
/>
69+
</div>
70+
</div>
71+
</div>
72+
</form>

tests/results/bootstrap4/test_form_helper/bootstrap_form_show_errors_bs4_true.html

+13-6
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
<label for="id_email" class=" requiredField"> email<span class="asteriskField">*</span> </label>
44
<div class="">
55
<div class="input-group">
6-
<input type="text" name="email" value="invalidemail" maxlength="30" aria-invalid="true" aria-describedby="id_email_helptext"
6+
<input type="text" name="email" value="invalidemail" maxlength="30" aria-invalid="true" aria-describedby="id_email_helptext id_email_error"
77
class="textinput textInput inputtext form-control is-invalid" required id="id_email" />
88
<div class="input-group-append"><span class="input-group-text">whatever</span></div>
9-
<span id="error_1_id_email" class="invalid-feedback"><strong>Enter a valid email address.</strong></span>
9+
<div class="invalid-feedback" id="id_email_error">
10+
<span id="error_1_id_email" class="invalid-feedback"><strong>Enter a valid email address.</strong></span>
11+
</div>
1012
</div>
11-
<small id="hint_id_email" class="form-text text-muted">Insert your email</small>
13+
<small id="hint_id_email" class="form-text text-muted">Insert your email</small>
1214
</div>
1315
</div>
1416
<div id="div_id_first_name" class="form-group">
@@ -21,9 +23,11 @@
2123
<div class="">
2224
<div class="input-group">
2325
<div class="input-group-prepend"><span class="input-group-text">blabla</span></div>
24-
<input type="text" name="first_name" value="first_name_too_long" maxlength="5" aria-invalid="true"
26+
<input type="text" name="first_name" value="first_name_too_long" maxlength="5" aria-invalid="true" aria-describedby="id_first_name_error"
2527
class="textinput textInput inputtext form-control is-invalid" required id="id_first_name" />
26-
<span id="error_1_id_first_name" class="invalid-feedback"><strong>Ensure this value has at most 5 characters (it has 19).</strong></span>
28+
<div class="invalid-feedback" id="id_first_name_error">
29+
<span id="error_1_id_first_name" class="invalid-feedback"><strong>Ensure this value has at most 5 characters (it has 19).</strong></span>
30+
</div>
2731
</div>
2832
</div>
2933
</div>
@@ -41,9 +45,12 @@
4145
required
4246
id="id_last_name"
4347
aria-invalid="true"
48+
aria-describedby="id_last_name_error"
4449
/>
4550
<div class="input-group-append"><span class="input-group-text">bar</span></div>
46-
<span id="error_1_id_last_name" class="invalid-feedback"><strong>Ensure this value has at most 5 characters (it has 18).</strong></span>
51+
<div class="invalid-feedback" id="id_last_name_error">
52+
<span id="error_1_id_last_name" class="invalid-feedback"><strong>Ensure this value has at most 5 characters (it has 18).</strong></span>
53+
</div>
4754
</div>
4855
</div>
4956
</div>

tests/results/bootstrap4/test_form_helper/bootstrap_form_show_errors_bs4_true_lt50.html

+9-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
<div class="input-group">
66
<input type="text" name="email" value="invalidemail" maxlength="30" class="textinput textInput inputtext form-control is-invalid" required id="id_email" />
77
<div class="input-group-append"><span class="input-group-text">whatever</span></div>
8-
<span id="error_1_id_email" class="invalid-feedback"><strong>Enter a valid email address.</strong></span>
8+
<div class="invalid-feedback" id="id_email_error">
9+
<span id="error_1_id_email" class="invalid-feedback"><strong>Enter a valid email address.</strong></span>
10+
</div>
911
</div>
1012
<small id="hint_id_email" class="form-text text-muted">Insert your email</small>
1113
</div>
@@ -21,7 +23,9 @@
2123
<div class="input-group">
2224
<div class="input-group-prepend"><span class="input-group-text">blabla</span></div>
2325
<input type="text" name="first_name" value="first_name_too_long" maxlength="5" class="textinput textInput inputtext form-control is-invalid" required id="id_first_name" />
24-
<span id="error_1_id_first_name" class="invalid-feedback"><strong>Ensure this value has at most 5 characters (it has 19).</strong></span>
26+
<div class="invalid-feedback" id="id_first_name_error">
27+
<span id="error_1_id_first_name" class="invalid-feedback"><strong>Ensure this value has at most 5 characters (it has 19).</strong></span>
28+
</div>
2529
</div>
2630
</div>
2731
</div>
@@ -40,7 +44,9 @@
4044
id="id_last_name"
4145
/>
4246
<div class="input-group-append"><span class="input-group-text">bar</span></div>
43-
<span id="error_1_id_last_name" class="invalid-feedback"><strong>Ensure this value has at most 5 characters (it has 18).</strong></span>
47+
<div class="invalid-feedback" id="id_last_name_error">
48+
<span id="error_1_id_last_name" class="invalid-feedback"><strong>Ensure this value has at most 5 characters (it has 18).</strong></span>
49+
</div>
4450
</div>
4551
</div>
4652
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<form method="post">
2+
<div id="div_id_email" class="form-group">
3+
<label for="id_email" class=" requiredField"> email<span class="asteriskField">*</span> </label>
4+
<div class="">
5+
<div class="input-group">
6+
<input type="text" name="email" value="invalidemail" maxlength="30" aria-invalid="true" aria-describedby="id_email_helptext"
7+
class="textinput textInput inputtext form-control is-invalid" required id="id_email" />
8+
<div class="input-group-append"><span class="input-group-text">whatever</span></div>
9+
<div class="invalid-feedback" id="id_email_error">
10+
<span id="error_1_id_email" class="invalid-feedback"><strong>Enter a valid email address.</strong></span>
11+
</div>
12+
</div>
13+
<small id="hint_id_email" class="form-text text-muted">Insert your email</small>
14+
</div>
15+
</div>
16+
</div>
17+
<div id="div_id_first_name" class="form-group">
18+
<label
19+
for="id_first_name"
20+
class=" requiredField"
21+
>
22+
first name<span class="asteriskField">*</span>
23+
</label>
24+
<div class="">
25+
<div class="input-group">
26+
<div class="input-group-prepend"><span class="input-group-text">blabla</span></div>
27+
<input type="text" name="first_name" value="first_name_too_long" maxlength="5" aria-invalid="true"
28+
class="textinput textInput inputtext form-control is-invalid" required id="id_first_name" />
29+
<div class="invalid-feedback" id="id_first_name_error">
30+
<span id="error_1_id_first_name" class="invalid-feedback"><strong>Ensure this value has at most 5 characters (it has 19).</strong></span>
31+
</div>
32+
</div>
33+
</div>
34+
</div>
35+
<div id="div_id_last_name" class="form-group">
36+
<label for="id_last_name" class=" requiredField"> last name<span class="asteriskField">*</span> </label>
37+
<div class="">
38+
<div class="input-group">
39+
<div class="input-group-prepend"><span class="input-group-text">foo</span></div>
40+
<input
41+
type="text"
42+
name="last_name"
43+
value="last_name_too_long"
44+
maxlength="5"
45+
class="textinput textInput inputtext form-control is-invalid"
46+
required
47+
id="id_last_name"
48+
aria-invalid="true"
49+
/>
50+
<div class="input-group-append"><span class="input-group-text">bar</span></div>
51+
<div class="invalid-feedback" id="id_last_name_error">
52+
<span id="error_1_id_last_name" class="invalid-feedback"><strong>Ensure this value has at most 5 characters (it has 18).</strong></span>
53+
</div>
54+
</div>
55+
</div>
56+
</div>
57+
<div
58+
id="div_id_password1"
59+
class="form-group"
60+
>
61+
<label for="id_password1" class=" requiredField"> password<span class="asteriskField">*</span> </label>
62+
<div class="">
63+
<div class="input-group">
64+
<input type="password" name="password1" maxlength="30" class="textInput textinput form-control" required id="id_password1" />
65+
<div class="input-group-append"><span class="input-group-text">whatever</span></div>
66+
</div>
67+
</div>
68+
</div>
69+
<div id="div_id_password2" class="form-group">
70+
<label for="id_password2" class=" requiredField"> re-enter password<span class="asteriskField">*</span> </label>
71+
<div class="">
72+
<div class="input-group">
73+
<div class="input-group-prepend"><span class="input-group-text">blabla</span></div>
74+
<input type="password" name="password2" maxlength="30" class="textInput textinput form-control" required id="id_password2" />
75+
</div>
76+
</div>
77+
</div>
78+
</form>

tests/results/bootstrap4/test_form_helper/test_form_show_errors_non_field_errors_false.html

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
</div>
77
<div id="div_id_email" class="form-group"> <label for="id_email" class=" requiredField"> email<span
88
class="asteriskField">*</span> </label>
9-
<div> <input type="text" name="email" maxlength="30" aria-describedby="id_email_helptext" aria-invalid="true"
9+
<div> <input type="text" name="email" maxlength="30" aria-describedby="id_email_helptext id_email_error" aria-invalid="true"
1010
class="textinput textInput inputtext form-control is-invalid" required id="id_email"> <small
1111
id="hint_id_email" class="form-text text-muted">Insert your email</small> </div>
1212
</div>
@@ -22,12 +22,12 @@
2222
</div>
2323
<div id="div_id_first_name" class="form-group"> <label for="id_first_name" class=" requiredField"> first name<span
2424
class="asteriskField">*</span> </label>
25-
<div> <input type="text" name="first_name" maxlength="5" aria-invalid="true"
25+
<div> <input type="text" name="first_name" maxlength="5" aria-invalid="true" aria-describedby="id_first_name_error"
2626
class="textinput textInput inputtext form-control is-invalid" required id="id_first_name"> </div>
2727
</div>
2828
<div id="div_id_last_name" class="form-group"> <label for="id_last_name" class=" requiredField"> last name<span
2929
class="asteriskField">*</span> </label>
30-
<div> <input type="text" name="last_name" maxlength="5" aria-invalid="true"
30+
<div> <input type="text" name="last_name" maxlength="5" aria-invalid="true" aria-describedby="id_last_name_error"
3131
class="textinput textInput inputtext form-control is-invalid" required id="id_last_name"> </div>
3232
</div>
3333
<div id="div_id_datetime_field" class="form-group">

0 commit comments

Comments
 (0)