【问题标题】:Django - Date problem in CRUD applicationDjango - CRUD 应用程序中的日期问题
【发布时间】: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


【解决方案1】:

我根据@Melvyn 的回答修改了最后一行脚本:

defaultDate: `worker.birth_date.strftime()`

【讨论】:

    猜你喜欢
    • 2014-10-01
    • 2014-11-09
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2015-08-07
    • 2015-01-06
    相关资源
    最近更新 更多