To solve this problem, the span tag needs to be a div.
--
Ticket URL: <https://code.djangoproject.com/ticket/31189>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Old description:
> The help text for the password field of, say, the UserCreationForm, is
> generated here:
> https://github.com/django/django/blob/master/django/contrib/auth/password_validation.py#L78
> and is an html list. The form methods, `as_table' and `as_p', however,
> wrap the help text into a span tag. In the resulting rendered HTML, there
> will thus be a ul tag inside a span tag, which is invalid html.
>
> To solve this problem, the span tag needs to be a div.
New description:
The help text for the password field of, say, the UserCreationForm, is
generated here:
https://github.com/django/django/blob/master/django/contrib/auth/password_validation.py#L78
and is an html list. The form methods, `as_table' and `as_p', however,
wrap the help text into a span tag. In the resulting rendered HTML, there
will thus be a ul tag inside a span tag, which is invalid html.
To solve this problem, the span tag needs at least to be a div. But then
there is the problem that `as_p' renders everything inside a paragraph,
which also cannot take an html list, only phrasing content.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/31189#comment:1>
* status: new => closed
* type: Bug => Cleanup/optimization
* resolution: => wontfix
Comment:
It was fixed in admins' templates in
2d26b4637f0318736955b54b34f270fe9500f795, see #27207.
Forms in `django.contrib.auth.forms` are designed to render properly in
Django admin and I don't think that we should override helpers in admin
forms to generate valid HTML in all helpers `as_ul()`, `as_p()`, and
`as_table()`, moreover even overriding `help_text_html` won't help in
`as_p()`. There's no feasible solution. You can re-use templates from
`admin/templates/admin`, e.g.
`admin/templates/admin/includes/fieldset.html` if you don't want to write
you're own custom templates.
--
Ticket URL: <https://code.djangoproject.com/ticket/31189#comment:2>