#python-3.x #django #django-models #django-forms #flatpickr
#python-3.x #django #django-модели #django-формы #flatpickr
Вопрос:
Я использую flatpickr
информацию о дате в своем приложении Django. Проблема в том, что когда я хочу обновить worker
информацию, на edit.html
странице значение по умолчанию birth_date
отображается некорректно. Например, я создал работника Xen
, родившегося в 01-05-1997, и щелкнул, чтобы обновить его имя, при birth_date
вводе он отображает сегодняшнюю дату. Вот мои коды:
forms.py
class WorkerForm(ModelForm):
class Meta:
model = Worker
fields = "__all__"
widgets = {
'birth_date': DateTimeInput(format='%Y-%m-%d %H:%M:%S', attrs={'class':'datetimefield'})
}
models.py
:
class Worker(models.Model):
...
birth_date = models.DateTimeField(blank=True, null=True)
edit.html
:
...
<div class="form-group row">
<label class="col-sm-2 col-form-label">İşçinin doğum tarixi</label>
<div class="col-sm-4">
<input class="datetimefield" type="date" name="birth_date" id="birth_date" value="{{ worker.birth_date }}" />
</div>
</div>
...
<script>
window.addEventListener("DOMContentLoaded", function () {
flatpickr(".datetimefield", {
enableTime: true,
enableSeconds: true,
dateFormat: "Y-m-d H:i:S",
time_24hr: true,
locale: "az",
});
});
</script>
Комментарии:
1. Ваш DateFormat имеет синтаксис «php date», но flatpickr использует свою собственную строку формата , свободно основанную на
strftime()
without the%
. Поскольку и Python, и flatpickr поддерживают строки даты ISO, я настоятельно рекомендую пойти простым путем.
Ответ №1:
Я изменил последнюю строку скрипта в соответствии с ответом @Melvyn:
defaultDate: `worker.birth_date.strftime()`