Commit 175a102d authored by Tim Graham's avatar Tim Graham
Browse files

Fixed #20567 - Documented BoundField.id_for_label.

Thanks littlepig for the suggestion.
parent a47116cb
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -688,6 +688,29 @@ by a ``Widget``::
    >>> print(bound_form['subject'].value())
    hi

.. attribute:: BoundField.id_for_label

Use this property to render the ID of this field. For example, if you are
manually constructing a ``<label>`` in your template (despite the fact that
:meth:`~BoundField.label_tag` will do this for you):

.. code-block:: html+django

    <label for="{{ form.my_field.id_for_label }}">...</label>{{ my_field }}

By default, this will be the field's name prefixed by ``id_``
("``id_my_field``" for the example above). You may modify the ID by setting
:attr:`~django.forms.Widget.attrs` on the field's widget. For example,
declaring a field like this::

    my_field = forms.CharField(widget=forms.TextInput(attrs={'id': 'myFIELD'}))

and using the template above, would render something like:

.. code-block:: html

    <label for="myFIELD">...</label><input id="myFIELD" type="text" name="my_field" />

.. _binding-uploaded-files:

Binding uploaded files to a form
+4 −1
Original line number Diff line number Diff line
@@ -163,6 +163,9 @@ Django will then include the extra attributes in the rendered output:
    <tr><th>Url:</th><td><input type="url" name="url"/></td></tr>
    <tr><th>Comment:</th><td><input type="text" name="comment" size="40"/></td></tr>

You can also set the HTML ``id`` using :attr:`~Widget.attrs`. See
:attr:`BoundField.id_for_label` for an example.

.. _styling-widget-classes:

Styling widget classes