Commit cbdda282 authored by Erik Romijn's avatar Erik Romijn
Browse files

Fixed #23075 -- Added documentation on novalidate attribute and made it default for admin

Thanks to sehmaschine for the report and to Tim Graham for the review.
parent 5473c36c
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
@@ -341,6 +341,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>``.