Поле DateTimeField не отображается в шаблоне - django

У меня есть два поля DateTime в модели:

models.py

start_appointment = models.DateTimeField(default=timezone.now, blank=True)
end_appointment = models.DateTimeField(default=timezone.now, blank=True)

У меня также есть форма, где я устанавливаю виджеты для вышеуказанных полей:

'start_appointment': forms.DateTimeInput(attrs={'class': 'form-control', 'type': "datetime-local"}),
'end_appointment': forms.DateTimeInput(attrs={'class': 'form-control', 'type': "datetime-local"}),

У меня есть представление обновления, где я хочу обновить поля назначений, например, start_appointment. Однако при отображении формы в шаблоне эти два поля отображаются как dd/mm/yyyy --:--, --, то есть значения из базы данных не отображаются, а все остальные отображаются без проблем. С другой стороны, я могу выполнить форму без проблем, и обновление происходит успешно.

template:

<div class="form-group row">
  <label class="col-form-label col-3 text-lg-right text-left">{% trans 'Start Appointment' %}</label>
  <div class="col-9">
   {{ form.start_appointment }}
  </div>
</div>

Update

Добавление файла forms.py

class AddAppointmentForm(forms.ModelForm):
    class Meta:
        model = Appointment
        fields = ['user', 'name', 'appointment_notes', 'seat', 'start_appointment', 'end_appointment']

        widgets = {
            'user': forms.Select(attrs={'class': 'form-control'}),
            'name': forms.TextInput(attrs={'class': 'form-control'}),
            'appointment_notes': forms.Textarea(attrs={'maxlength': '900', 'class': 'form-control' }),
            'seat': forms.Select(attrs={'class': 'form-control'}),
            'start_appointment': forms.DateTimeInput(attrs={'class': 'form-control', 'type': "datetime-local"}),
            'end_appointment': forms.DateTimeInput(attrs={'class': 'form-control', 'type': "datetime-local"}),
 }

В чем может быть проблема?

проблема может заключаться в следующем 'type': "datetime-local"
попробуйте это попробуйте изменить ваше время даты на что-то вроде этого

'start_appointment': forms.DateTimeInput(format='%Y-%m-%d %H:%M:%S', attrs={'class':'datetimefield'}) 

а для datetimepicker вы можете использовать что-то вроде этого

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
    <script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
    
    
    <script>
        window.addEventListener("DOMContentLoaded", function () {
            flatpickr(".datetimefield", {
                enableTime: true,
                enableSeconds: true,
                dateFormat: "Y-m-d H:i:S",
            });
        });

</script>

Вы можете узнать больше на Flatpickr здесь https://flatpickr.js.org/

Вернуться на верх