diff options
| author | Erik Romijn <eromijn@solidlinks.nl> | 2014-08-23 10:27:33 +0200 |
|---|---|---|
| committer | Erik Romijn <eromijn@solidlinks.nl> | 2014-08-26 14:20:31 +0200 |
| commit | cbdda28208c9c2aea479d5a482ff27bf37869d34 (patch) | |
| tree | e626aeda696cd011de2657b48403a17433cf2bee | |
| parent | 5473c36cef38ee5cb964f8d55dcd85f2b5ad8386 (diff) | |
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.
| -rw-r--r-- | django/contrib/admin/templates/admin/change_form.html | 2 | ||||
| -rw-r--r-- | django/contrib/admin/templates/admin/change_list.html | 2 | ||||
| -rw-r--r-- | docs/topics/forms/index.txt | 10 |
3 files changed, 12 insertions, 2 deletions
diff --git a/django/contrib/admin/templates/admin/change_form.html b/django/contrib/admin/templates/admin/change_form.html index 0fc4a25138..fc1e810541 100644 --- a/django/contrib/admin/templates/admin/change_form.html +++ b/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 %} diff --git a/django/contrib/admin/templates/admin/change_list.html b/django/contrib/admin/templates/admin/change_list.html index 586942d174..ca0080e3be 100644 --- a/django/contrib/admin/templates/admin/change_list.html +++ b/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 %} diff --git a/docs/topics/forms/index.txt b/docs/topics/forms/index.txt index 4df70ede46..2b0cfe6946 100644 --- a/docs/topics/forms/index.txt +++ b/docs/topics/forms/index.txt @@ -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>``. |
