Ошибки поля формы Django DecimalField не отображаются в шаблоне

У меня глупая проблема. У меня есть десятичное поле с разрешенным 1 знаком после запятой. Мне нужно вручную перебирать поля формы в шаблоне и выводить их. Если в шаблоне я устанавливаю input в type="text" и ввожу в форму число с двумя десятичными знаками, то в шаблоне отображается сообщение об ошибке ("Убедитесь, что после запятой не более 1 знака."). Однако, когда я устанавливаю для ввода type="number" и step="0.1", то ошибка не отображается в шаблоне. Я могу просто установить его как текст, но это означает, что пользователи могут вводить любые символы. Я предпочитаю не делать этого и установить его как type="number", чтобы пользователи могли вводить только цифры.

Любая помощь будет принята с благодарностью.

Минимальный код:

# forms.py
class TimeForm(forms.Form):
    time = forms.DecimalField(max_digits=3, decimal_places=1, label = 'Time')

# template
<form method="POST">
{% csrf_token %}
<div>
 <input type="number" step="0.1" class="form-control {% if form.time.errors %} is-invalid {% endif %}" 
  name="{{form.time.name}}" id="{{ form.time.id_for_label }}"
  {% if form.time.value %} value="{{form.time.value}}" {% else %} placeholder="Total Time" {% endif %}>
  {% if form.time.errors %}
    {% for error in form.time.errors %}
      <span class="invalid-feedback">{{error}}</span>
    {% endfor %}
  {% endif %}
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>

Я решил свою проблему. Я столкнулся с другой похожей проблемой, когда моя форма отображала ошибки не так, как я хотел. Я хотел придать полю ввода красную рамку и отобразить ошибку под ней, как в bootstrap. Но я получал всплывающее окно внутри поля ввода. Это браузер выполнял некоторую валидацию. Решением было добавить атрибут novalidate к тегу формы.

<form novalidate method="POST">
Вернуться на верх