mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
Fixed #18134 -- BoundField.label_tag now includes the form's label_suffix
There was an inconsistency between how the label_tag for forms were generated depending on which method was used: as_p, as_ul and as_table contained code to append the label_suffix where as label_tag called on a form field directly did NOT append the label_suffix. The code for appending the label_suffix has been moved in to the label_tag code of the field and the HTML generation code for as_p, as_ul and as_table now calls this code as well. This is a backwards incompatible change because users who have added the label_suffix manually in their templates may now get double label_suffix characters in their forms.
This commit is contained in:
@@ -581,6 +581,37 @@ It is still possible to convert the fetched rows to ``Model`` objects
|
||||
lazily by using the :meth:`~django.db.models.query.QuerySet.iterator()`
|
||||
method.
|
||||
|
||||
:meth:`BoundField.label_tag<django.forms.BoundField.label_tag>` now includes the form's :attr:`~django.forms.Form.label_suffix`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This is consistent with how methods like
|
||||
:meth:`Form.as_p<django.forms.Form.as_p>` and
|
||||
:meth:`Form.as_ul<django.forms.Form.as_ul>` render labels.
|
||||
|
||||
If you manually render ``label_tag`` in your templates:
|
||||
|
||||
.. code-block:: html+django
|
||||
|
||||
{{ form.my_field.label_tag }}: {{ form.my_field }}
|
||||
|
||||
you'll want to remove the semicolon (or whatever other separator you may be
|
||||
using) to avoid duplicating it when upgrading to Django 1.6. The following
|
||||
template in Django 1.6 will render identically to the above template in Django
|
||||
1.5, except that the semicolon will appear inside the ``<label>`` element.
|
||||
|
||||
.. code-block:: html+django
|
||||
|
||||
{{ form.my_field.label_tag }} {{ form.my_field }}
|
||||
|
||||
will render something like:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<label for="id_my_field">My Field:</label> <input id="id_my_field" type="text" name="my_field" />
|
||||
|
||||
If you want to keep the current behavior of rendering ``label_tag`` without
|
||||
the ``label_suffix``, instantiate the form ``label_suffix=''``.
|
||||
|
||||
Miscellaneous
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
|
||||
Reference in New Issue
Block a user