Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

[1.7.x] Fixed #23075 -- Added documentation on novalidate attribute a…

…nd made it default for admin

Backport of cbdda28 from master.
  • Loading branch information...
commit 307eef20e35e78b1e812dc347c6c959e380267cf 1 parent c13a4c9
@erikr erikr authored
View
2  django/contrib/admin/templates/admin/change_form.html
@@ -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 %}
View
2  django/contrib/admin/templates/admin/change_list.html
@@ -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 %}
View
10 docs/topics/forms/index.txt
@@ -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>``.

0 comments on commit 307eef2

Please sign in to comment.
Something went wrong with that request. Please try again.