Не удается заставить Django Date Widget отображаться в форме

Я пытаюсь заставить поле даты в форме отображаться как дата с выбором даты. По какой-то причине поле не отображается как тип даты.

Поле модели:

registration_date = models.DateField(null=True, blank=True)

Форма:

class VehicleQuickAdd(forms.ModelForm):
    class Meta:
        model = Vehicle
        fields = ['license_plate', 'internal_id', 'affiliated_company',
                  'registration_date', 'active_since', 'registration_certificate',]

        widgets = {
            'registration_date': forms.DateInput(attrs={'type': 'date'})
        }

HTML:

{% extends 'base.html' %}
{% load crispy_forms_tags %}

  {% block title %}Add Vehicle{% endblock title %}
  {% block content %}
    <div class="section-container container-fluid">
      <div class="general-form pl-md-5 pr-md-5">
          <h2>Add Vehicle</h2>
  
           <form action="" method="post">
            {% csrf_token %}
            {% crispy form %}
            </br>
            <input class="btn btn-success" type="submit" value="save">
           </form>
     </div>
    </div>
  {% endblock content %}

Когда я смотрю на элемент на странице, он говорит type="text"

<input type="text" name="registration_date" class="dateinput form-control" id="id_registration_date">

Есть идеи, почему это не работает?

Оказалось, что виджет ввода даты не отображался по очень простой причине. Я включил поля в представление, но забыл включить "form_class = VehicleQuickAdd" в представление.

Вот как должен выглядеть вид:

from .forms import VehicleQuickAdd

class VehicleCreateView(CreateView):
    model = Vehicle
    template_name = 'company_accounts/vehicles/quick-vehicle-add.html'
    form_class = VehicleQuickAdd
    

    def form_valid(self, form):
        vehicle = form.save(commit=False)
        vehicle.created_by = self.request.user
        return super().form_valid(form)
Вернуться на верх