Как стилизовать и выровнять список ошибок из форм django?
Поле ошибки этой формы поставляется с элементами ul и li, и я не могу найти способ изменить его. Можно ли сделать так, чтобы в качестве ошибки было "email принят", а не весь ul элемент "email" перед этим, если это невозможно, то можно ли хотя бы выровнять его в линию вместе с ul и li. Заранее спасибо.
css
.errorlist li {
list-style-type: none;
display: inline-block;
}
.account-errors {
font-family: "Circular Std Book";
color: black;
}
html
{% if form.errors %}
<div class="account-errors">
<div class="container-error">
{{ form.errors }}
</div>
</div>
{% endif %}
Согласно официальной документации, вы можете передать индивидуальный класс ошибки экземпляру формы при построении следующим образом:
# forms.py
from django.forms.utils import ErrorList
class DivErrorList(ErrorList):
def __str__(self):
return self.as_divs()
def as_divs(self):
if not self: return ''
return '<div class="your_css_class">%s</div>' % ''.join(['<div
class="your_css_class">%s</div>' % e for e in self])
Теперь, по вашему мнению, вы могли бы сделать s.th. как
# views.py
# Initiate form instance and pass the custom error_class
my_form = ContactForm(data, auto_id=False, error_class=DivErrorList)
...
# CSS
.your_css_class {
font-size: 2em;
}