Не удается заставить 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)