Created
April 6, 2025 16:33
-
-
Save mweinelt/ca116c172b4148f9e5ec5df4f35ea500 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
django-crispy-bootstrap3> ____________________ test_form_show_errors_non_field_errors ____________________ | |
django-crispy-bootstrap3> | |
django-crispy-bootstrap3> @pytest.mark.skipif( | |
django-crispy-bootstrap3> __version__[0] == "1", reason='#1262 fixed required attributes and empty for="".' | |
django-crispy-bootstrap3> ) | |
django-crispy-bootstrap3> @override_settings(CRISPY_CLASS_CONVERTERS=CONVERTERS) | |
django-crispy-bootstrap3> def test_form_show_errors_non_field_errors(): | |
django-crispy-bootstrap3> form = SampleForm({"password1": "wargame", "password2": "god"}) | |
django-crispy-bootstrap3> form.helper = FormHelper() | |
django-crispy-bootstrap3> form.helper.form_show_errors = True | |
django-crispy-bootstrap3> form.is_valid() | |
django-crispy-bootstrap3> | |
django-crispy-bootstrap3> template = Template( | |
django-crispy-bootstrap3> """ | |
django-crispy-bootstrap3> {% load crispy_forms_tags %} | |
django-crispy-bootstrap3> {% crispy testForm %} | |
django-crispy-bootstrap3> """ | |
django-crispy-bootstrap3> ) | |
django-crispy-bootstrap3> | |
django-crispy-bootstrap3> # First we render with errors | |
django-crispy-bootstrap3> c = Context({"testForm": form}) | |
django-crispy-bootstrap3> # Ensure those errors were rendered | |
django-crispy-bootstrap3> if django.VERSION < (4, 1): | |
django-crispy-bootstrap3> # Removed "for = ..." from MultiWidget's <label>. | |
django-crispy-bootstrap3> # https://github.com/django/django/commit/c6c6cd3c5ad9c36795bb120e521590424f034ae4 | |
django-crispy-bootstrap3> expected = parse_expected( | |
django-crispy-bootstrap3> "bootstrap3/test_form_helper/" | |
django-crispy-bootstrap3> "test_form_show_errors_non_field_errors_true_lte40.html" | |
django-crispy-bootstrap3> ) | |
django-crispy-bootstrap3> elif django.VERSION >= (5, 0): | |
django-crispy-bootstrap3> # Added 'aria-describedby' for fields with help_text | |
django-crispy-bootstrap3> # https://docs.djangoproject.com/en/5.0/releases/5.0/#forms | |
django-crispy-bootstrap3> expected = parse_expected( | |
django-crispy-bootstrap3> "bootstrap3/test_form_helper/" | |
django-crispy-bootstrap3> "test_form_show_errors_non_field_errors_true_gte50.html" | |
django-crispy-bootstrap3> ) | |
django-crispy-bootstrap3> else: | |
django-crispy-bootstrap3> expected = parse_expected( | |
django-crispy-bootstrap3> "bootstrap3/test_form_helper/" | |
django-crispy-bootstrap3> "test_form_show_errors_non_field_errors_true.html" | |
django-crispy-bootstrap3> ) | |
django-crispy-bootstrap3> > assert parse_html(template.render(c)) == expected | |
django-crispy-bootstrap3> E assert <form method="post">\n<div class="alert alert-block alert-danger">\n<ul>\n<li>\nPasswords dont match\n</li>\n</ul>\n</div><div class="form-group">\n<div class="checkbox" id="div_id_is_company">\n<label class="" for="id_is_company">\n<input class="checkboxinput" id="id_is_company" name="is_company" type="checkbox">company\n</label>\n</div>\n</div><div class="form-group has-error" id="div_id_email">\n<label class="control-label requiredField" for="id_email">\nemail<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-describedby="id_email_helptext id_email_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text"><span class="help-block" id="error_1_id_email">\n<strong>\nThis field is required.\n</strong>\n</span><div class="help-block" id="hint_id_email">\nInsert your email\n</div>\n</div>\n</div><div class="form-group" id="div_id_password1">\n<label class="control-label requiredField" for="id_password1">\npassword<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input class="form-control textInput textinput" id="id_password1" maxlength="30" name="password1" required type="password">\n</div>\n</div><div class="form-group" id="div_id_password2">\n<label class="control-label requiredField" for="id_password2">\nre-enter password<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input class="form-control textInput textinput" id="id_password2" maxlength="30" name="password2" required type="password">\n</div>\n</div><div class="form-group has-error" id="div_id_first_name">\n<label class="control-label requiredField" for="id_first_name">\nfirst name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-describedby="id_first_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text"><span class="help-block" id="error_1_id_first_name">\n<strong>\nThis field is required.\n</strong>\n</span>\n</div>\n</div><div class="form-group has-error" id="div_id_last_name">\n<label class="control-label requiredField" for="id_last_name">\nlast name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-describedby="id_last_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text"><span class="help-block" id="error_1_id_last_name">\n<strong>\nThis field is required.\n</strong>\n</span>\n</div>\n</div><div class="form-group has-error" id="div_id_datetime_field">\n<label class="control-label requiredField">\ndate time<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-invalid="true" class="dateinput" id="id_datetime_field_0" name="datetime_field_0" required type="text"><input aria-invalid="true" class="timeinput" id="id_datetime_field_1" name="datetime_field_1" required type="text"><span class="help-block" id="error_1_id_datetime_field">\n<strong>\nThis field is required.\n</strong>\n</span>\n</div>\n</div>\n</form> == <form method="post">\n<div class="alert alert-block alert-danger">\n<ul>\n<li>\nPasswords dont match\n</li>\n</ul>\n</div><div class="form-group">\n<div class="checkbox" id="div_id_is_company">\n<label class="" for="id_is_company">\n<input class="checkboxinput" id="id_is_company" name="is_company" type="checkbox">company\n</label>\n</div>\n</div><div class="form-group has-error" id="div_id_email">\n<label class="control-label requiredField" for="id_email">\nemail<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-describedby="id_email_helptext" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text"><span class="help-block" id="error_1_id_email">\n<strong>\nThis field is required.\n</strong>\n</span><div class="help-block" id="hint_id_email">\nInsert your email\n</div>\n</div>\n</div><div class="form-group" id="div_id_password1">\n<label class="control-label requiredField" for="id_password1">\npassword<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input class="form-control textInput textinput" id="id_password1" maxlength="30" name="password1" required type="password">\n</div>\n</div><div class="form-group" id="div_id_password2">\n<label class="control-label requiredField" for="id_password2">\nre-enter password<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input class="form-control textInput textinput" id="id_password2" maxlength="30" name="password2" required type="password">\n</div>\n</div><div class="form-group has-error" id="div_id_first_name">\n<label class="control-label requiredField" for="id_first_name">\nfirst name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text"><span class="help-block" id="error_1_id_first_name">\n<strong>\nThis field is required.\n</strong>\n</span>\n</div>\n</div><div class="form-group has-error" id="div_id_last_name">\n<label class="control-label requiredField" for="id_last_name">\nlast name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text"><span class="help-block" id="error_1_id_last_name">\n<strong>\nThis field is required.\n</strong>\n</span>\n</div>\n</div><div class="form-group has-error" id="div_id_datetime_field">\n<label class="control-label requiredField">\ndate time<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-invalid="true" class="dateinput" id="id_datetime_field_0" name="datetime_field_0" required type="text"><input aria-invalid="true" class="timeinput" id="id_datetime_field_1" name="datetime_field_1" required type="text"><span class="help-block" id="error_1_id_datetime_field">\n<strong>\nThis field is required.\n</strong>\n</span>\n</div>\n</div>\n</form> | |
django-crispy-bootstrap3> E | |
django-crispy-bootstrap3> E Full diff: | |
django-crispy-bootstrap3> E <form method="post"> | |
django-crispy-bootstrap3> E <div class="alert alert-block alert-danger"> | |
django-crispy-bootstrap3> E <ul> | |
django-crispy-bootstrap3> E <li> | |
django-crispy-bootstrap3> E Passwords dont match | |
django-crispy-bootstrap3> E </li> | |
django-crispy-bootstrap3> E </ul> | |
django-crispy-bootstrap3> E </div><div class="form-group"> | |
django-crispy-bootstrap3> E <div class="checkbox" id="div_id_is_company"> | |
django-crispy-bootstrap3> E <label class="" for="id_is_company"> | |
django-crispy-bootstrap3> E <input class="checkboxinput" id="id_is_company" name="is_company" type="checkbox">company | |
django-crispy-bootstrap3> E </label> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div><div class="form-group has-error" id="div_id_email"> | |
django-crispy-bootstrap3> E <label class="control-label requiredField" for="id_email"> | |
django-crispy-bootstrap3> E email<span class="asteriskField"> | |
django-crispy-bootstrap3> E * | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </label><div class="controls"> | |
django-crispy-bootstrap3> E - <input aria-describedby="id_email_helptext" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text"><span class="help-block" id="error_1_id_email"> | |
django-crispy-bootstrap3> E ? ^ | |
django-crispy-bootstrap3> E + <input aria-describedby="id_email_helptext id_email_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text"><span class="help-block" id="error_1_id_email"> | |
django-crispy-bootstrap3> E ? ^^^^^^^^^^^^^^^^ | |
django-crispy-bootstrap3> E <strong> | |
django-crispy-bootstrap3> E This field is required. | |
django-crispy-bootstrap3> E </strong> | |
django-crispy-bootstrap3> E </span><div class="help-block" id="hint_id_email"> | |
django-crispy-bootstrap3> E Insert your email | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div><div class="form-group" id="div_id_password1"> | |
django-crispy-bootstrap3> E <label class="control-label requiredField" for="id_password1"> | |
django-crispy-bootstrap3> E password<span class="asteriskField"> | |
django-crispy-bootstrap3> E * | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </label><div class="controls"> | |
django-crispy-bootstrap3> E <input class="form-control textInput textinput" id="id_password1" maxlength="30" name="password1" required type="password"> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div><div class="form-group" id="div_id_password2"> | |
django-crispy-bootstrap3> E <label class="control-label requiredField" for="id_password2"> | |
django-crispy-bootstrap3> E re-enter password<span class="asteriskField"> | |
django-crispy-bootstrap3> E * | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </label><div class="controls"> | |
django-crispy-bootstrap3> E <input class="form-control textInput textinput" id="id_password2" maxlength="30" name="password2" required type="password"> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div><div class="form-group has-error" id="div_id_first_name"> | |
django-crispy-bootstrap3> E <label class="control-label requiredField" for="id_first_name"> | |
django-crispy-bootstrap3> E first name<span class="asteriskField"> | |
django-crispy-bootstrap3> E * | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </label><div class="controls"> | |
django-crispy-bootstrap3> E - <input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text"><span class="help-block" id="error_1_id_first_name"> | |
django-crispy-bootstrap3> E + <input aria-describedby="id_first_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text"><span class="help-block" id="error_1_id_first_name"> | |
django-crispy-bootstrap3> E ? +++++++++++++++++++++++++++++++++++++++ | |
django-crispy-bootstrap3> E <strong> | |
django-crispy-bootstrap3> E This field is required. | |
django-crispy-bootstrap3> E </strong> | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div><div class="form-group has-error" id="div_id_last_name"> | |
django-crispy-bootstrap3> E <label class="control-label requiredField" for="id_last_name"> | |
django-crispy-bootstrap3> E last name<span class="asteriskField"> | |
django-crispy-bootstrap3> E * | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </label><div class="controls"> | |
django-crispy-bootstrap3> E - <input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text"><span class="help-block" id="error_1_id_last_name"> | |
django-crispy-bootstrap3> E + <input aria-describedby="id_last_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text"><span class="help-block" id="error_1_id_last_name"> | |
django-crispy-bootstrap3> E ? ++++++++++++++++++++++++++++++++++++++ | |
django-crispy-bootstrap3> E <strong> | |
django-crispy-bootstrap3> E This field is required. | |
django-crispy-bootstrap3> E </strong> | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div><div class="form-group has-error" id="div_id_datetime_field"> | |
django-crispy-bootstrap3> E <label class="control-label requiredField"> | |
django-crispy-bootstrap3> E date time<span class="asteriskField"> | |
django-crispy-bootstrap3> E * | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </label><div class="controls"> | |
django-crispy-bootstrap3> E <input aria-invalid="true" class="dateinput" id="id_datetime_field_0" name="datetime_field_0" required type="text"><input aria-invalid="true" class="timeinput" id="id_datetime_field_1" name="datetime_field_1" required type="text"><span class="help-block" id="error_1_id_datetime_field"> | |
django-crispy-bootstrap3> E <strong> | |
django-crispy-bootstrap3> E This field is required. | |
django-crispy-bootstrap3> E </strong> | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </form> | |
django-crispy-bootstrap3> | |
django-crispy-bootstrap3> tests/test_form_helper.py:154: AssertionError | |
django-crispy-bootstrap3> _____________________ test_bootstrap_form_show_errors_bs3 ______________________ | |
django-crispy-bootstrap3> | |
django-crispy-bootstrap3> @override_settings(CRISPY_CLASS_CONVERTERS=CONVERTERS) | |
django-crispy-bootstrap3> def test_bootstrap_form_show_errors_bs3(): | |
django-crispy-bootstrap3> form = SampleForm( | |
django-crispy-bootstrap3> { | |
django-crispy-bootstrap3> "email": "invalidemail", | |
django-crispy-bootstrap3> "first_name": "first_name_too_long", | |
django-crispy-bootstrap3> "last_name": "last_name_too_long", | |
django-crispy-bootstrap3> "password1": "yes", | |
django-crispy-bootstrap3> "password2": "yes", | |
django-crispy-bootstrap3> } | |
django-crispy-bootstrap3> ) | |
django-crispy-bootstrap3> form.helper = FormHelper() | |
django-crispy-bootstrap3> form.helper.layout = Layout( | |
django-crispy-bootstrap3> AppendedText("email", "whatever"), | |
django-crispy-bootstrap3> PrependedText("first_name", "blabla"), | |
django-crispy-bootstrap3> PrependedAppendedText("last_name", "foo", "bar"), | |
django-crispy-bootstrap3> AppendedText("password1", "whatever"), | |
django-crispy-bootstrap3> PrependedText("password2", "blabla"), | |
django-crispy-bootstrap3> ) | |
django-crispy-bootstrap3> form.is_valid() | |
django-crispy-bootstrap3> | |
django-crispy-bootstrap3> form.helper.form_show_errors = True | |
django-crispy-bootstrap3> if django.VERSION >= (5, 0): | |
django-crispy-bootstrap3> # Added 'aria-describedby' for fields with help_text | |
django-crispy-bootstrap3> # https://docs.djangoproject.com/en/5.0/releases/5.0/#forms | |
django-crispy-bootstrap3> expected = parse_expected( | |
django-crispy-bootstrap3> "bootstrap3/test_form_helper/bootstrap_form_show_errors_bs3_true_gte50.html" | |
django-crispy-bootstrap3> ) | |
django-crispy-bootstrap3> else: | |
django-crispy-bootstrap3> expected = parse_expected( | |
django-crispy-bootstrap3> "bootstrap3/test_form_helper/bootstrap_form_show_errors_bs3_true.html" | |
django-crispy-bootstrap3> ) | |
django-crispy-bootstrap3> > assert parse_form(form) == expected | |
django-crispy-bootstrap3> E assert <form method="post">\n<div class="form-group has-error" id="div_id_email">\n<label class="control-label requiredField" for="id_email">\nemail<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<input aria-describedby="id_email_helptext id_email_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text" value="invalidemail"><span class="input-group-addon">\nwhatever\n</span>\n</div><span class="help-block" id="error_1_id_email">\n<strong>\nEnter a valid email address.\n</strong>\n</span><div class="help-block" id="hint_id_email">\nInsert your email\n</div>\n</div>\n</div><div class="form-group has-error" id="div_id_first_name">\n<label class="control-label requiredField" for="id_first_name">\nfirst name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<span class="input-group-addon">\nblabla\n</span><input aria-describedby="id_first_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text" value="first_name_too_long">\n</div><span class="help-block" id="error_1_id_first_name">\n<strong>\nEnsure this value has at most 5 characters (it has 19).\n</strong>\n</span>\n</div>\n</div><div class="form-group has-error" id="div_id_last_name">\n<label class="control-label requiredField" for="id_last_name">\nlast name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<span class="input-group-addon">\nfoo\n</span><input aria-describedby="id_last_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text" value="last_name_too_long"><span class="input-group-addon">\nbar\n</span>\n</div><span class="help-block" id="error_1_id_last_name">\n<strong>\nEnsure this value has at most 5 characters (it has 18).\n</strong>\n</span>\n</div>\n</div><div class="form-group" id="div_id_password1">\n<label class="control-label requiredField" for="id_password1">\npassword<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<input class="form-control textInput textinput" id="id_password1" maxlength="30" name="password1" required type="password"><span class="input-group-addon">\nwhatever\n</span>\n</div>\n</div>\n</div><div class="form-group" id="div_id_password2">\n<label class="control-label requiredField" for="id_password2">\nre-enter password<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<span class="input-group-addon">\nblabla\n</span><input class="form-control textInput textinput" id="id_password2" maxlength="30" name="password2" required type="password">\n</div>\n</div>\n</div>\n</form> == <form method="post">\n<div class="form-group has-error" id="div_id_email">\n<label class="control-label requiredField" for="id_email">\nemail<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<input aria-describedby="id_email_helptext" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text" value="invalidemail"><span class="input-group-addon">\nwhatever\n</span>\n</div><span class="help-block" id="error_1_id_email">\n<strong>\nEnter a valid email address.\n</strong>\n</span><div class="help-block" id="hint_id_email">\nInsert your email\n</div>\n</div>\n</div><div class="form-group has-error" id="div_id_first_name">\n<label class="control-label requiredField" for="id_first_name">\nfirst name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<span class="input-group-addon">\nblabla\n</span><input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text" value="first_name_too_long">\n</div><span class="help-block" id="error_1_id_first_name">\n<strong>\nEnsure this value has at most 5 characters (it has 19).\n</strong>\n</span>\n</div>\n</div><div class="form-group has-error" id="div_id_last_name">\n<label class="control-label requiredField" for="id_last_name">\nlast name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<span class="input-group-addon">\nfoo\n</span><input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text" value="last_name_too_long"><span class="input-group-addon">\nbar\n</span>\n</div><span class="help-block" id="error_1_id_last_name">\n<strong>\nEnsure this value has at most 5 characters (it has 18).\n</strong>\n</span>\n</div>\n</div><div class="form-group" id="div_id_password1">\n<label class="control-label requiredField" for="id_password1">\npassword<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<input class="form-control textInput textinput" id="id_password1" maxlength="30" name="password1" required type="password"><span class="input-group-addon">\nwhatever\n</span>\n</div>\n</div>\n</div><div class="form-group" id="div_id_password2">\n<label class="control-label requiredField" for="id_password2">\nre-enter password<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<span class="input-group-addon">\nblabla\n</span><input class="form-control textInput textinput" id="id_password2" maxlength="30" name="password2" required type="password">\n</div>\n</div>\n</div>\n</form> | |
django-crispy-bootstrap3> E | |
django-crispy-bootstrap3> E Full diff: | |
django-crispy-bootstrap3> E <form method="post"> | |
django-crispy-bootstrap3> E <div class="form-group has-error" id="div_id_email"> | |
django-crispy-bootstrap3> E <label class="control-label requiredField" for="id_email"> | |
django-crispy-bootstrap3> E email<span class="asteriskField"> | |
django-crispy-bootstrap3> E * | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </label><div class="controls"> | |
django-crispy-bootstrap3> E <div class="input-group"> | |
django-crispy-bootstrap3> E - <input aria-describedby="id_email_helptext" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text" value="invalidemail"><span class="input-group-addon"> | |
django-crispy-bootstrap3> E ? ^ | |
django-crispy-bootstrap3> E + <input aria-describedby="id_email_helptext id_email_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text" value="invalidemail"><span class="input-group-addon"> | |
django-crispy-bootstrap3> E ? ^^^^^^^^^^^^^^^^ | |
django-crispy-bootstrap3> E whatever | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </div><span class="help-block" id="error_1_id_email"> | |
django-crispy-bootstrap3> E <strong> | |
django-crispy-bootstrap3> E Enter a valid email address. | |
django-crispy-bootstrap3> E </strong> | |
django-crispy-bootstrap3> E </span><div class="help-block" id="hint_id_email"> | |
django-crispy-bootstrap3> E Insert your email | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div><div class="form-group has-error" id="div_id_first_name"> | |
django-crispy-bootstrap3> E <label class="control-label requiredField" for="id_first_name"> | |
django-crispy-bootstrap3> E first name<span class="asteriskField"> | |
django-crispy-bootstrap3> E * | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </label><div class="controls"> | |
django-crispy-bootstrap3> E <div class="input-group"> | |
django-crispy-bootstrap3> E <span class="input-group-addon"> | |
django-crispy-bootstrap3> E blabla | |
django-crispy-bootstrap3> E - </span><input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text" value="first_name_too_long"> | |
django-crispy-bootstrap3> E + </span><input aria-describedby="id_first_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text" value="first_name_too_long"> | |
django-crispy-bootstrap3> E ? +++++++++++++++++++++++++++++++++++++++ | |
django-crispy-bootstrap3> E </div><span class="help-block" id="error_1_id_first_name"> | |
django-crispy-bootstrap3> E <strong> | |
django-crispy-bootstrap3> E Ensure this value has at most 5 characters (it has 19). | |
django-crispy-bootstrap3> E </strong> | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div><div class="form-group has-error" id="div_id_last_name"> | |
django-crispy-bootstrap3> E <label class="control-label requiredField" for="id_last_name"> | |
django-crispy-bootstrap3> E last name<span class="asteriskField"> | |
django-crispy-bootstrap3> E * | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </label><div class="controls"> | |
django-crispy-bootstrap3> E <div class="input-group"> | |
django-crispy-bootstrap3> E <span class="input-group-addon"> | |
django-crispy-bootstrap3> E foo | |
django-crispy-bootstrap3> E - </span><input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text" value="last_name_too_long"><span class="input-group-addon"> | |
django-crispy-bootstrap3> E + </span><input aria-describedby="id_last_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text" value="last_name_too_long"><span class="input-group-addon"> | |
django-crispy-bootstrap3> E ? ++++++++++++++++++++++++++++++++++++++ | |
django-crispy-bootstrap3> E bar | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </div><span class="help-block" id="error_1_id_last_name"> | |
django-crispy-bootstrap3> E <strong> | |
django-crispy-bootstrap3> E Ensure this value has at most 5 characters (it has 18). | |
django-crispy-bootstrap3> E </strong> | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div><div class="form-group" id="div_id_password1"> | |
django-crispy-bootstrap3> E <label class="control-label requiredField" for="id_password1"> | |
django-crispy-bootstrap3> E password<span class="asteriskField"> | |
django-crispy-bootstrap3> E * | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </label><div class="controls"> | |
django-crispy-bootstrap3> E <div class="input-group"> | |
django-crispy-bootstrap3> E <input class="form-control textInput textinput" id="id_password1" maxlength="30" name="password1" required type="password"><span class="input-group-addon"> | |
django-crispy-bootstrap3> E whatever | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div><div class="form-group" id="div_id_password2"> | |
django-crispy-bootstrap3> E <label class="control-label requiredField" for="id_password2"> | |
django-crispy-bootstrap3> E re-enter password<span class="asteriskField"> | |
django-crispy-bootstrap3> E * | |
django-crispy-bootstrap3> E </span> | |
django-crispy-bootstrap3> E </label><div class="controls"> | |
django-crispy-bootstrap3> E <div class="input-group"> | |
django-crispy-bootstrap3> E <span class="input-group-addon"> | |
django-crispy-bootstrap3> E blabla | |
django-crispy-bootstrap3> E </span><input class="form-control textInput textinput" id="id_password2" maxlength="30" name="password2" required type="password"> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </div> | |
django-crispy-bootstrap3> E </form> | |
django-crispy-bootstrap3> | |
django-crispy-bootstrap3> tests/test_form_helper.py:555: AssertionError | |
django-crispy-bootstrap3> =========================== short test summary info ============================ | |
django-crispy-bootstrap3> FAILED tests/test_form_helper.py::test_form_show_errors_non_field_errors - assert <form method="post">\n<div class="alert alert-block alert-danger">\n<ul>\n<li>\nPasswords dont match\n</li>\n</ul>\n</div><div class="form-group">\n<div class="checkbox" id="div_id_is_company">\n<label class="" for="id_is_company">\n<input class="checkboxinput" id="id_is_company" name="is_company" type="checkbox">company\n</label>\n</div>\n</div><div class="form-group has-error" id="div_id_email">\n<label class="control-label requiredField" for="id_email">\nemail<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-describedby="id_email_helptext id_email_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text"><span class="help-block" id="error_1_id_email">\n<strong>\nThis field is required.\n</strong>\n</span><div class="help-block" id="hint_id_email">\nInsert your email\n</div>\n</div>\n</div><div class="form-group" id="div_id_password1">\n<label class="control-label requiredField" for="id_password1">\npassword<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input class="form-control textInput textinput" id="id_password1" maxlength="30" name="password1" required type="password">\n</div>\n</div><div class="form-group" id="div_id_password2">\n<label class="control-label requiredField" for="id_password2">\nre-enter password<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input class="form-control textInput textinput" id="id_password2" maxlength="30" name="password2" required type="password">\n</div>\n</div><div class="form-group has-error" id="div_id_first_name">\n<label class="control-label requiredField" for="id_first_name">\nfirst name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-describedby="id_first_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text"><span class="help-block" id="error_1_id_first_name">\n<strong>\nThis field is required.\n</strong>\n</span>\n</div>\n</div><div class="form-group has-error" id="div_id_last_name">\n<label class="control-label requiredField" for="id_last_name">\nlast name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-describedby="id_last_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text"><span class="help-block" id="error_1_id_last_name">\n<strong>\nThis field is required.\n</strong>\n</span>\n</div>\n</div><div class="form-group has-error" id="div_id_datetime_field">\n<label class="control-label requiredField">\ndate time<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-invalid="true" class="dateinput" id="id_datetime_field_0" name="datetime_field_0" required type="text"><input aria-invalid="true" class="timeinput" id="id_datetime_field_1" name="datetime_field_1" required type="text"><span class="help-block" id="error_1_id_datetime_field">\n<strong>\nThis field is required.\n</strong>\n</span>\n</div>\n</div>\n</form> == <form method="post">\n<div class="alert alert-block alert-danger">\n<ul>\n<li>\nPasswords dont match\n</li>\n</ul>\n</div><div class="form-group">\n<div class="checkbox" id="div_id_is_company">\n<label class="" for="id_is_company">\n<input class="checkboxinput" id="id_is_company" name="is_company" type="checkbox">company\n</label>\n</div>\n</div><div class="form-group has-error" id="div_id_email">\n<label class="control-label requiredField" for="id_email">\nemail<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-describedby="id_email_helptext" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text"><span class="help-block" id="error_1_id_email">\n<strong>\nThis field is required.\n</strong>\n</span><div class="help-block" id="hint_id_email">\nInsert your email\n</div>\n</div>\n</div><div class="form-group" id="div_id_password1">\n<label class="control-label requiredField" for="id_password1">\npassword<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input class="form-control textInput textinput" id="id_password1" maxlength="30" name="password1" required type="password">\n</div>\n</div><div class="form-group" id="div_id_password2">\n<label class="control-label requiredField" for="id_password2">\nre-enter password<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input class="form-control textInput textinput" id="id_password2" maxlength="30" name="password2" required type="password">\n</div>\n</div><div class="form-group has-error" id="div_id_first_name">\n<label class="control-label requiredField" for="id_first_name">\nfirst name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text"><span class="help-block" id="error_1_id_first_name">\n<strong>\nThis field is required.\n</strong>\n</span>\n</div>\n</div><div class="form-group has-error" id="div_id_last_name">\n<label class="control-label requiredField" for="id_last_name">\nlast name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text"><span class="help-block" id="error_1_id_last_name">\n<strong>\nThis field is required.\n</strong>\n</span>\n</div>\n</div><div class="form-group has-error" id="div_id_datetime_field">\n<label class="control-label requiredField">\ndate time<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<input aria-invalid="true" class="dateinput" id="id_datetime_field_0" name="datetime_field_0" required type="text"><input aria-invalid="true" class="timeinput" id="id_datetime_field_1" name="datetime_field_1" required type="text"><span class="help-block" id="error_1_id_datetime_field">\n<strong>\nThis field is required.\n</strong>\n</span>\n</div>\n</div>\n</form> | |
django-crispy-bootstrap3> | |
django-crispy-bootstrap3> Full diff: | |
django-crispy-bootstrap3> <form method="post"> | |
django-crispy-bootstrap3> <div class="alert alert-block alert-danger"> | |
django-crispy-bootstrap3> <ul> | |
django-crispy-bootstrap3> <li> | |
django-crispy-bootstrap3> Passwords dont match | |
django-crispy-bootstrap3> </li> | |
django-crispy-bootstrap3> </ul> | |
django-crispy-bootstrap3> </div><div class="form-group"> | |
django-crispy-bootstrap3> <div class="checkbox" id="div_id_is_company"> | |
django-crispy-bootstrap3> <label class="" for="id_is_company"> | |
django-crispy-bootstrap3> <input class="checkboxinput" id="id_is_company" name="is_company" type="checkbox">company | |
django-crispy-bootstrap3> </label> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div><div class="form-group has-error" id="div_id_email"> | |
django-crispy-bootstrap3> <label class="control-label requiredField" for="id_email"> | |
django-crispy-bootstrap3> email<span class="asteriskField"> | |
django-crispy-bootstrap3> * | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </label><div class="controls"> | |
django-crispy-bootstrap3> - <input aria-describedby="id_email_helptext" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text"><span class="help-block" id="error_1_id_email"> | |
django-crispy-bootstrap3> ? ^ | |
django-crispy-bootstrap3> + <input aria-describedby="id_email_helptext id_email_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text"><span class="help-block" id="error_1_id_email"> | |
django-crispy-bootstrap3> ? ^^^^^^^^^^^^^^^^ | |
django-crispy-bootstrap3> <strong> | |
django-crispy-bootstrap3> This field is required. | |
django-crispy-bootstrap3> </strong> | |
django-crispy-bootstrap3> </span><div class="help-block" id="hint_id_email"> | |
django-crispy-bootstrap3> Insert your email | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div><div class="form-group" id="div_id_password1"> | |
django-crispy-bootstrap3> <label class="control-label requiredField" for="id_password1"> | |
django-crispy-bootstrap3> password<span class="asteriskField"> | |
django-crispy-bootstrap3> * | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </label><div class="controls"> | |
django-crispy-bootstrap3> <input class="form-control textInput textinput" id="id_password1" maxlength="30" name="password1" required type="password"> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div><div class="form-group" id="div_id_password2"> | |
django-crispy-bootstrap3> <label class="control-label requiredField" for="id_password2"> | |
django-crispy-bootstrap3> re-enter password<span class="asteriskField"> | |
django-crispy-bootstrap3> * | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </label><div class="controls"> | |
django-crispy-bootstrap3> <input class="form-control textInput textinput" id="id_password2" maxlength="30" name="password2" required type="password"> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div><div class="form-group has-error" id="div_id_first_name"> | |
django-crispy-bootstrap3> <label class="control-label requiredField" for="id_first_name"> | |
django-crispy-bootstrap3> first name<span class="asteriskField"> | |
django-crispy-bootstrap3> * | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </label><div class="controls"> | |
django-crispy-bootstrap3> - <input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text"><span class="help-block" id="error_1_id_first_name"> | |
django-crispy-bootstrap3> + <input aria-describedby="id_first_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text"><span class="help-block" id="error_1_id_first_name"> | |
django-crispy-bootstrap3> ? +++++++++++++++++++++++++++++++++++++++ | |
django-crispy-bootstrap3> <strong> | |
django-crispy-bootstrap3> This field is required. | |
django-crispy-bootstrap3> </strong> | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div><div class="form-group has-error" id="div_id_last_name"> | |
django-crispy-bootstrap3> <label class="control-label requiredField" for="id_last_name"> | |
django-crispy-bootstrap3> last name<span class="asteriskField"> | |
django-crispy-bootstrap3> * | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </label><div class="controls"> | |
django-crispy-bootstrap3> - <input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text"><span class="help-block" id="error_1_id_last_name"> | |
django-crispy-bootstrap3> + <input aria-describedby="id_last_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text"><span class="help-block" id="error_1_id_last_name"> | |
django-crispy-bootstrap3> ? ++++++++++++++++++++++++++++++++++++++ | |
django-crispy-bootstrap3> <strong> | |
django-crispy-bootstrap3> This field is required. | |
django-crispy-bootstrap3> </strong> | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div><div class="form-group has-error" id="div_id_datetime_field"> | |
django-crispy-bootstrap3> <label class="control-label requiredField"> | |
django-crispy-bootstrap3> date time<span class="asteriskField"> | |
django-crispy-bootstrap3> * | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </label><div class="controls"> | |
django-crispy-bootstrap3> <input aria-invalid="true" class="dateinput" id="id_datetime_field_0" name="datetime_field_0" required type="text"><input aria-invalid="true" class="timeinput" id="id_datetime_field_1" name="datetime_field_1" required type="text"><span class="help-block" id="error_1_id_datetime_field"> | |
django-crispy-bootstrap3> <strong> | |
django-crispy-bootstrap3> This field is required. | |
django-crispy-bootstrap3> </strong> | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </form> | |
django-crispy-bootstrap3> FAILED tests/test_form_helper.py::test_bootstrap_form_show_errors_bs3 - assert <form method="post">\n<div class="form-group has-error" id="div_id_email">\n<label class="control-label requiredField" for="id_email">\nemail<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<input aria-describedby="id_email_helptext id_email_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text" value="invalidemail"><span class="input-group-addon">\nwhatever\n</span>\n</div><span class="help-block" id="error_1_id_email">\n<strong>\nEnter a valid email address.\n</strong>\n</span><div class="help-block" id="hint_id_email">\nInsert your email\n</div>\n</div>\n</div><div class="form-group has-error" id="div_id_first_name">\n<label class="control-label requiredField" for="id_first_name">\nfirst name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<span class="input-group-addon">\nblabla\n</span><input aria-describedby="id_first_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text" value="first_name_too_long">\n</div><span class="help-block" id="error_1_id_first_name">\n<strong>\nEnsure this value has at most 5 characters (it has 19).\n</strong>\n</span>\n</div>\n</div><div class="form-group has-error" id="div_id_last_name">\n<label class="control-label requiredField" for="id_last_name">\nlast name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<span class="input-group-addon">\nfoo\n</span><input aria-describedby="id_last_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text" value="last_name_too_long"><span class="input-group-addon">\nbar\n</span>\n</div><span class="help-block" id="error_1_id_last_name">\n<strong>\nEnsure this value has at most 5 characters (it has 18).\n</strong>\n</span>\n</div>\n</div><div class="form-group" id="div_id_password1">\n<label class="control-label requiredField" for="id_password1">\npassword<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<input class="form-control textInput textinput" id="id_password1" maxlength="30" name="password1" required type="password"><span class="input-group-addon">\nwhatever\n</span>\n</div>\n</div>\n</div><div class="form-group" id="div_id_password2">\n<label class="control-label requiredField" for="id_password2">\nre-enter password<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<span class="input-group-addon">\nblabla\n</span><input class="form-control textInput textinput" id="id_password2" maxlength="30" name="password2" required type="password">\n</div>\n</div>\n</div>\n</form> == <form method="post">\n<div class="form-group has-error" id="div_id_email">\n<label class="control-label requiredField" for="id_email">\nemail<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<input aria-describedby="id_email_helptext" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text" value="invalidemail"><span class="input-group-addon">\nwhatever\n</span>\n</div><span class="help-block" id="error_1_id_email">\n<strong>\nEnter a valid email address.\n</strong>\n</span><div class="help-block" id="hint_id_email">\nInsert your email\n</div>\n</div>\n</div><div class="form-group has-error" id="div_id_first_name">\n<label class="control-label requiredField" for="id_first_name">\nfirst name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<span class="input-group-addon">\nblabla\n</span><input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text" value="first_name_too_long">\n</div><span class="help-block" id="error_1_id_first_name">\n<strong>\nEnsure this value has at most 5 characters (it has 19).\n</strong>\n</span>\n</div>\n</div><div class="form-group has-error" id="div_id_last_name">\n<label class="control-label requiredField" for="id_last_name">\nlast name<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<span class="input-group-addon">\nfoo\n</span><input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text" value="last_name_too_long"><span class="input-group-addon">\nbar\n</span>\n</div><span class="help-block" id="error_1_id_last_name">\n<strong>\nEnsure this value has at most 5 characters (it has 18).\n</strong>\n</span>\n</div>\n</div><div class="form-group" id="div_id_password1">\n<label class="control-label requiredField" for="id_password1">\npassword<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<input class="form-control textInput textinput" id="id_password1" maxlength="30" name="password1" required type="password"><span class="input-group-addon">\nwhatever\n</span>\n</div>\n</div>\n</div><div class="form-group" id="div_id_password2">\n<label class="control-label requiredField" for="id_password2">\nre-enter password<span class="asteriskField">\n*\n</span>\n</label><div class="controls">\n<div class="input-group">\n<span class="input-group-addon">\nblabla\n</span><input class="form-control textInput textinput" id="id_password2" maxlength="30" name="password2" required type="password">\n</div>\n</div>\n</div>\n</form> | |
django-crispy-bootstrap3> | |
django-crispy-bootstrap3> Full diff: | |
django-crispy-bootstrap3> <form method="post"> | |
django-crispy-bootstrap3> <div class="form-group has-error" id="div_id_email"> | |
django-crispy-bootstrap3> <label class="control-label requiredField" for="id_email"> | |
django-crispy-bootstrap3> email<span class="asteriskField"> | |
django-crispy-bootstrap3> * | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </label><div class="controls"> | |
django-crispy-bootstrap3> <div class="input-group"> | |
django-crispy-bootstrap3> - <input aria-describedby="id_email_helptext" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text" value="invalidemail"><span class="input-group-addon"> | |
django-crispy-bootstrap3> ? ^ | |
django-crispy-bootstrap3> + <input aria-describedby="id_email_helptext id_email_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_email" maxlength="30" name="email" required type="text" value="invalidemail"><span class="input-group-addon"> | |
django-crispy-bootstrap3> ? ^^^^^^^^^^^^^^^^ | |
django-crispy-bootstrap3> whatever | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </div><span class="help-block" id="error_1_id_email"> | |
django-crispy-bootstrap3> <strong> | |
django-crispy-bootstrap3> Enter a valid email address. | |
django-crispy-bootstrap3> </strong> | |
django-crispy-bootstrap3> </span><div class="help-block" id="hint_id_email"> | |
django-crispy-bootstrap3> Insert your email | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div><div class="form-group has-error" id="div_id_first_name"> | |
django-crispy-bootstrap3> <label class="control-label requiredField" for="id_first_name"> | |
django-crispy-bootstrap3> first name<span class="asteriskField"> | |
django-crispy-bootstrap3> * | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </label><div class="controls"> | |
django-crispy-bootstrap3> <div class="input-group"> | |
django-crispy-bootstrap3> <span class="input-group-addon"> | |
django-crispy-bootstrap3> blabla | |
django-crispy-bootstrap3> - </span><input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text" value="first_name_too_long"> | |
django-crispy-bootstrap3> + </span><input aria-describedby="id_first_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_first_name" maxlength="5" name="first_name" required type="text" value="first_name_too_long"> | |
django-crispy-bootstrap3> ? +++++++++++++++++++++++++++++++++++++++ | |
django-crispy-bootstrap3> </div><span class="help-block" id="error_1_id_first_name"> | |
django-crispy-bootstrap3> <strong> | |
django-crispy-bootstrap3> Ensure this value has at most 5 characters (it has 19). | |
django-crispy-bootstrap3> </strong> | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div><div class="form-group has-error" id="div_id_last_name"> | |
django-crispy-bootstrap3> <label class="control-label requiredField" for="id_last_name"> | |
django-crispy-bootstrap3> last name<span class="asteriskField"> | |
django-crispy-bootstrap3> * | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </label><div class="controls"> | |
django-crispy-bootstrap3> <div class="input-group"> | |
django-crispy-bootstrap3> <span class="input-group-addon"> | |
django-crispy-bootstrap3> foo | |
django-crispy-bootstrap3> - </span><input aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text" value="last_name_too_long"><span class="input-group-addon"> | |
django-crispy-bootstrap3> + </span><input aria-describedby="id_last_name_error" aria-invalid="true" class="form-control inputtext textInput textinput" id="id_last_name" maxlength="5" name="last_name" required type="text" value="last_name_too_long"><span class="input-group-addon"> | |
django-crispy-bootstrap3> ? ++++++++++++++++++++++++++++++++++++++ | |
django-crispy-bootstrap3> bar | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </div><span class="help-block" id="error_1_id_last_name"> | |
django-crispy-bootstrap3> <strong> | |
django-crispy-bootstrap3> Ensure this value has at most 5 characters (it has 18). | |
django-crispy-bootstrap3> </strong> | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div><div class="form-group" id="div_id_password1"> | |
django-crispy-bootstrap3> <label class="control-label requiredField" for="id_password1"> | |
django-crispy-bootstrap3> password<span class="asteriskField"> | |
django-crispy-bootstrap3> * | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </label><div class="controls"> | |
django-crispy-bootstrap3> <div class="input-group"> | |
django-crispy-bootstrap3> <input class="form-control textInput textinput" id="id_password1" maxlength="30" name="password1" required type="password"><span class="input-group-addon"> | |
django-crispy-bootstrap3> whatever | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div><div class="form-group" id="div_id_password2"> | |
django-crispy-bootstrap3> <label class="control-label requiredField" for="id_password2"> | |
django-crispy-bootstrap3> re-enter password<span class="asteriskField"> | |
django-crispy-bootstrap3> * | |
django-crispy-bootstrap3> </span> | |
django-crispy-bootstrap3> </label><div class="controls"> | |
django-crispy-bootstrap3> <div class="input-group"> | |
django-crispy-bootstrap3> <span class="input-group-addon"> | |
django-crispy-bootstrap3> blabla | |
django-crispy-bootstrap3> </span><input class="form-control textInput textinput" id="id_password2" maxlength="30" name="password2" required type="password"> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </div> | |
django-crispy-bootstrap3> </form> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment