Opened 17 years ago
Closed 17 years ago
#4554 closed (wontfix)
Newsforms: {{ field.error }} in HTML Template is HTML (ul) but should be Text (plain)
Reported by: | Owned by: | Adrian Holovaty | |
---|---|---|---|
Component: | Forms | Version: | dev |
Severity: | Keywords: | ||
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Using the newforms library I do something like that in my html template:
{% for field in form %} {% if field.errors %}<p class="error">{{ field.errors }}</p>{% endif %} <label class="required">{{ field.label}}</label>{{field}}<br> {% if field.help_text %}<p class="help">{{ field.help_text }}</p>{% endif %} {% endfor %}
Which renders fine as long as no field has errors. If I the user made an error and in field.errors for that reason is an error message to display {{field.errors }} renders to something like this: <ul class="errorlist"><li>This field is required.</li></ul>.
Which actually seems wrong because in this type of usage of the newforms extension I don't want <ul> and <li> html tags in my code because I do them myself (css and what not). {{ field.errors}} behaves differently from {{ field }} or {{ field.help_text }} here.
Adding a as_text ({{ field.errors.as_text}}) to does fix the problem for the moment but seems inconsistent.
As usual in the forms layout, a decision has been made about the default layout for an element, but you always have access to the raw information (via errors.as_text or accessing errors as a list in this case). So if you don't like the default you can change it. The current default is useful in a lot of situations and unfortunately, there isn't a one size fits all solution.