首页 > 解决方案 > 模型表单中的更新日期时间字段仅显示纯文本而不是 datepicker Django

问题描述

我正在尝试更新我的DateTimeField字段,但它只显示数字的纯文本而不是日期选择器

class MyModel(models.Model):
    date= models.DateTimeField(default=timezone.now)
    #others

表格.py

class UpdateMyModelForm(forms.ModelForm):
    date= forms.DateTimeField(required=True,input_formats=['%Y-%m-%dT%H:%M','%Y-%m-%dT%H:M%Z'],widget=forms.DateTimeInput(attrs={'type':'datetime'}))

class Meta:
    model = MyModel
    fields = ['date','others]

当我使用forms.DateTimeField它时,它不会显示我之前选择的上一个日期!当我删除forms.DateTimeField它时只显示纯文本type=text我也尝试使用

class DateInput(forms.DateInput):
    input_type = 'date'

但它只显示Y-m-d:年月日我还必须显示小时和分钟?请问我还有什么需要改变的吗

标签: djangodatetimedatetime-format

解决方案


首先,我建议你 date = forms.DateTimeInput(attrs={'type': 'datetime-local'})在你的 forms.py中使用

其次,如果您想查看上一个日期,请在模板中添加一个日期过滤器。
例如: <span>Date:</span><input class="mt-4 ml-4" type="datetime-local" name="date" value="{{form.date.value | date:'c'}}" id="id_deadline_date">
有帮助的日期过滤器是| date:'c'
在这些更改之后,我认为您将能够看到以前的日期。我已经解释了为什么你应该在这个链接
中使用日期过滤器。


推荐阅读