Re: [Django] #35880: Form Field.requried docs invalid example due to CharField.strip (was: Consistency and improvements to the form fields document.)

3 views
Skip to first unread message

Django

unread,
Nov 4, 2024, 3:00:30 AM11/4/24
to django-...@googlegroups.com
#35880: Form Field.requried docs invalid example due to CharField.strip
--------------------------------------+------------------------------------
Reporter: Antoliny | Owner: Antoliny
Type: Bug | Status: assigned
Component: Documentation | Version: 5.1
Severity: Normal | Resolution:
Keywords: Form Fields Document | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by Sarah Boyce):

* stage: Unreviewed => Accepted
* summary: Consistency and improvements to the form fields document. =>
Form Field.requried docs invalid example due to CharField.strip
* type: Cleanup/optimization => Bug


Old description:

> Hello!
> I created an issue by finded the wrong parts and the good parts when
> improved in the Form fields document.
>
> 1.
> [https://docs.djangoproject.com/en/5.1/ref/forms/fields/#django.forms.Field.required
> Field.requried section ] invalid example.
>
> {{{
> >>> from django import forms
> >>> f = forms.CharField()
> ...
> >> f.clean(" ")
> ' '
> }}}
> In the example passed a character string with spaces as a factor in the
> clean method to a CharField instance.
> This part is cleared space by CharField's to_python method, result is an
> empty_value so occur validation error.
> {{{
> class CharField(Field):
> ...
> def to_python(self, value):
> """Return a string."""
> if value not in self.empty_values:
> value = str(value)
> if self.strip:
> value = value.strip() # before value: " ", after value:
> ""
> if value in self.empty_values:
> return self.empty_value
> return value
> ...
> }}}
> However, in the current document, a string containing spaces seems to
> pass through the clean method.
>
> ----
>
> 2.
> [https://docs.djangoproject.com/en/5.1/ref/forms/fields/#django.forms.Field.label
> Field.label section] unclear part -> ("outputting forms as HTML" above)
>
> It is unclear what " 'Outputting forms as HTML' above" refers to in the
> Field label section.
> This part probably means the
> [https://docs.djangoproject.com/en/5.1/ref/forms/api/#outputting-forms-
> as-html "Outputting forms as HTML" section] of the Forms API Document.
>
> ----
>
> 3. Consistency "fallback" and link message
>
> This part is very trivial :)
>
> The word "fallback" used in the
> [https://docs.djangoproject.com/en/5.1/ref/forms/fields/#django.forms.Field.initial
> field initial section] are two values "fallback" and "fall back".
> {{{
> "Also note that initial values are not used as "fallback" ...
> ---
> >>> f.is_valid()
> False
> # The form does *not* fall back to using ....
> ...
> }}}
>
> I think it would be better to include documentation in the message set as
> a link.
> (Like the link message used in
> [https://docs.djangoproject.com/en/5.1/ref/forms/fields/#validators
> validators section].)
> {{{
>
> ``localize``
> ------------
>
> .. attribute:: Field.localize
>
> The ``localize`` argument enables the localization of form data input, as
> well
> as the rendered output.
>
> See the :doc:`format localization </topics/i18n/formatting>`
> documentation for # --> See the :doc:`format localization
> documentation</topics/i18n/formatting> ` for more information.
> }}}

New description:

Hello!
I created an issue by finded the wrong parts and the good parts when
improved in the Form fields document.

1.
[https://docs.djangoproject.com/en/5.1/ref/forms/fields/#django.forms.Field.required
Field.requried section ] invalid example.

{{{
>>> from django import forms
>>> f = forms.CharField()
...
>> f.clean(" ")
' '
}}}
In the example passed a character string with spaces as a factor in the
clean method to a CharField instance.
This part is cleared space by CharField's to_python method, result is an
empty_value so occur validation error.
{{{
class CharField(Field):
...
def to_python(self, value):
"""Return a string."""
if value not in self.empty_values:
value = str(value)
if self.strip:
value = value.strip() # before value: " ", after value:
""
if value in self.empty_values:
return self.empty_value
return value
...
}}}
However, in the current document, a string containing spaces seems to pass
through the clean method.

----

~~2.
[https://docs.djangoproject.com/en/5.1/ref/forms/fields/#django.forms.Field.label
Field.label section] unclear part -> ("outputting forms as HTML" above)~~

~~It is unclear what " 'Outputting forms as HTML' above" refers to in the
Field label section.
This part probably means the
[https://docs.djangoproject.com/en/5.1/ref/forms/api/#outputting-forms-as-
html "Outputting forms as HTML" section] of the Forms API Document.~~

----

~~3. Consistency "fallback" and link message~~

~~This part is very trivial :)~~

~~The word "fallback" used in the
[https://docs.djangoproject.com/en/5.1/ref/forms/fields/#django.forms.Field.initial
field initial section] are two values "fallback" and "fall back".~~
~~{{{
"Also note that initial values are not used as "fallback" ...
---
>>> f.is_valid()
False
# The form does *not* fall back to using ....
...
}}}~~

~~I think it would be better to include documentation in the message set
as a link.~~
~~(Like the link message used in
[https://docs.djangoproject.com/en/5.1/ref/forms/fields/#validators
validators section].)~~
~~{{{

``localize``
------------

.. attribute:: Field.localize

The ``localize`` argument enables the localization of form data input, as
well
as the rendered output.

See the :doc:`format localization </topics/i18n/formatting>` documentation
for # --> See the :doc:`format localization
documentation</topics/i18n/formatting> ` for more information.
}}}~~

--
--
Ticket URL: <https://code.djangoproject.com/ticket/35880#comment:5>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Reply all
Reply to author
Forward
0 new messages