首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Forms DateInput小部件未填充

Django Forms DateInput小部件未填充
EN

Stack Overflow用户
提问于 2020-02-09 02:57:24
回答 1查看 500关注 0票数 2

我有一个django编辑表单,其中有许多来自模型的字段,其中包括一些日期字段,为了获得合适的格式,我使用了DateInput小部件。不幸的是,当我们编辑对象时,除了日期之外,所有其他字段都已经填充了现有数据。日期处于初始状态(dd/mm/yyyy),由于它们是必需的,因此用户每次要编辑对象时都必须重新输入日期,即使他们不想更改日期也是如此。

有没有人知道如何在这些日期字段中预先填充日期数据?

forms.py:

代码语言:javascript
复制
 class DateInput(forms.DateInput):
        input_type = 'date'
        input_formats = ('%d-%m-%Y')
    [...]
 date_sinistre = forms.DateField(widget=DateInput, label='Date sinistre')
 date_effet = forms.DateField(widget=DateInput, label='Date effet')
 date_echeance = forms.DateField(widget=DateInput, label='Date échéance')

edit_object.html:

代码语言:javascript
复制
    <div class='row border border-primary rounded m-1 border-3'>
            <div class='col-md-4 p-0 pl-2 pr-2 justify-content-center align-self-center'>
                <strong>DATE DE SINISTRE:</strong>
            </div>
            <div class='col-md-8 p-0 pl-2 pr-0 justify-content-center align-self-center'>
                {{ dossierForm.date_sinistre|as_crispy_field }}
            </div>
        </div>

        <div class='row border border-primary rounded m-1 border-3'>
            <div class='col-md-4 p-0 pl-2 pr-2 justify-content-center align-self-center'>
                <strong>DATE EFFET:</strong>
            </div>
            <div class='col-md-8 p-0 pl-2 pr-0 justify-content-center align-self-center'>
                {{ dossierForm.date_effet|as_crispy_field }}
            </div>
        </div>

        <div class='row border border-primary rounded m-1 border-3'>
            <div class='col-md-4 p-0 pl-2 pr-2 justify-content-center align-self-center'>
                <strong>DATE ÉCHÉANCE:</strong>
            </div>
            <div class='col-md-8 p-0 pl-2 pr-0 justify-content-center align-self-center'>
                {{ dossierForm.date_echeance|as_crispy_field }}
            </div>
    </div>

PS:尽管我将格式指定为dd-mm-yy,但小部件仍然将日期显示为MM-DD-YYYY。

截图:

EN

回答 1

Stack Overflow用户

发布于 2020-04-07 22:10:50

您的DateInput生成元素<input type = "date">,但这种元素使用'%Y-%m-%d'格式。

实际上,检查一个正确的HTML元素,应该是这样的:

代码语言:javascript
复制
<input type="date" name="date" value="2020-04-07" id="id_date">

由于您传递的是另一种格式的日期,初始值将被忽略。

下面的方法应该是可行的

代码语言:javascript
复制
class DateInput(forms.DateInput):
        input_type = 'date'
        input_formats = ('%Y-%m-%d')
    [...]
 date_sinistre = forms.DateField(widget=DateInput, label='Date sinistre')
 date_effet = forms.DateField(widget=DateInput, label='Date effet')
 date_echeance = forms.DateField(widget=DateInput, label='Date échéance')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60130151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档