#32933: Point users to BoundField.initial instead of 
Form.get_initial_for_field()
-------------------------------------+-------------------------------------
     Reporter:  Chris Jerdonek       |                    Owner:  nobody
         Type:                       |                   Status:  new
  Cleanup/optimization               |
    Component:  Documentation        |                  Version:  dev
     Severity:  Normal               |               Resolution:
     Keywords:                       |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Description changed by Chris Jerdonek:

Old description:

> Currently, the documentation
> [https://docs.djangoproject.com/en/3.2/ref/forms/api/#django.forms.Form.get_initial_for_field
> points users to] `Form.get_initial_for_field(field, field_name)` to get
> the initial data for a form field. However, I think it would be better to
> point users to `BoundField.initial`, e.g. using the pattern
> `form[field_name].initial`. (`BoundField.initial` should also be added to
> the [https://docs.djangoproject.com/en/3.2/ref/forms/api/#attributes-of-
> boundfield BoundField attribute documentation], as it seems to have been
> left out.)
>
> There are a couple reasons I think users should be steered away from
> `get_initial_for_field()`. One reason is that `BoundField'`s API is
> simpler because it doesn't require passing redundant `field` and
> `field_name` arguments. Another reason is that going through `BoundField`
> has the advantage of using the `BoundField` instance's cache, as
> `initial` is a cached property. (I'm going to be filing another ticket
> related to the latter difference, later.)

New description:

 Currently, the documentation
 
[https://docs.djangoproject.com/en/3.2/ref/forms/api/#django.forms.Form.get_initial_for_field
 points users to] `Form.get_initial_for_field(field, field_name)` to get
 the initial data for a form field. However, I think it would be better to
 point users to `BoundField.initial`
 
([https://github.com/django/django/blob/7f33c1e22dbc34a7afae7967783725b10f1f13b1/django/forms/boundfield.py#L212-L220
 link to code]), e.g. using the pattern `form[field_name].initial`.
 (`BoundField.initial` should also be added to the
 [https://docs.djangoproject.com/en/3.2/ref/forms/api/#attributes-of-
 boundfield BoundField attribute documentation], as it seems to have been
 left out.)

 There are a couple reasons I think users should be steered away from
 `get_initial_for_field()`. One reason is that `BoundField'`s API is
 simpler because it doesn't require passing redundant `field` and
 `field_name` arguments. Another reason is that going through `BoundField`
 has the advantage of using the `BoundField` instance's cache, as `initial`
 is a cached property. (I'm going to be filing another ticket related to
 the latter difference, later.)

--

-- 
Ticket URL: <https://code.djangoproject.com/ticket/32933#comment:3>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/067.1c9ba5c9fffc399204820deb3ff7e046%40djangoproject.com.

Reply via email to