【发布时间】:2020-10-22 11:44:12
【问题描述】:
我在我的 Django 应用程序中使用flatpickr 获取日期信息。问题是当我想更新worker 信息时,edit.html 页面默认值birth_date 没有正确显示。例如,我创建了 1997 年 1 月 5 日出生的工人 Xen,然后点击更新他的姓名,在 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>
【问题讨论】:
-
你的 dateFormat 是 "php date" 语法,但是 flatpickr 使用它的 own format string,松散地基于
strftime()而没有%。由于 Python 和 flatpickr 都支持 ISO 日期字符串,我强烈建议走简单的路。
标签: python-3.x django django-models django-forms flatpickr