как мне оформить и выровнять список ошибок из форм django?

#html #css #django

#HTML #css — код #django

Вопрос:

Это поле ошибок формы поставляется с элементами ul и li, и я не могу найти способ его изменить. Итак, возможно ли, чтобы «электронная почта была принята» как ошибка вместо того, чтобы перед этим иметь весь элемент 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 %}
 

на что это похоже

Проверить представление элемента

Ответ №1:

Согласно официальной документации, вы можете передать отдельный класс ошибок экземпляру формы при построении следующим образом:

 # 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;
}