Commit 307eef20 authored by Erik Romijn's avatar Erik Romijn
Browse files

[1.7.x] Fixed #23075 -- Added documentation on novalidate attribute and made it default for admin

Backport of cbdda282 from master.
parent c13a4c95
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@
  </ul>
{% endif %}{% endif %}
{% endblock %}
<form {% if has_file_field %}enctype="multipart/form-data" {% endif %}action="{{ form_url }}" method="post" id="{{ opts.model_name }}_form">{% csrf_token %}{% block form_top %}{% endblock %}
<form {% if has_file_field %}enctype="multipart/form-data" {% endif %}action="{{ form_url }}" method="post" id="{{ opts.model_name }}_form" novalidate>{% csrf_token %}{% block form_top %}{% endblock %}
<div>
{% if is_popup %}<input type="hidden" name="{{ is_popup_var }}" value="1" />{% endif %}
{% if to_field %}<input type="hidden" name="{{ to_field_var }}" value="{{ to_field }}" />{% endif %}
+1 −1
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@
        {% endif %}
      {% endblock %}

      <form id="changelist-form" action="" method="post"{% if cl.formset.is_multipart %} enctype="multipart/form-data"{% endif %}>{% csrf_token %}
      <form id="changelist-form" action="" method="post"{% if cl.formset.is_multipart %} enctype="multipart/form-data"{% endif %} novalidate>{% csrf_token %}
      {% if cl.formset %}
        <div>{{ cl.formset.management_form }}</div>
      {% endif %}
+10 −0
Original line number Diff line number Diff line
@@ -345,6 +345,16 @@ from that ``{{ form }}`` by Django's template language.
    directly tied to forms in templates, this tag is omitted from the
    following examples in this document.

.. admonition:: HTML5 input types and browser validation

    If your form includes a :class:`~django.forms.URLField`, an
    :class:`~django.forms.EmailField` or any integer field type, Django will
    use the ``url``, ``email`` and ``number`` HTML5 input types. By default,
    browsers may apply their own validation on these fields, which may be
    stricter than Django's validation. If you would like to disable this
    behavior, set the `novalidate` attribute on the ``form`` tag, or specify
    a different widget on the field, like :class:`TextInput`.

We now have a working web form, described by a Django :class:`Form`, processed
by a view, and rendered as an HTML ``<form>``.