django - 在 Django 中,将小部件设置为 DateInput 时,预填充 DateField 不起作用
问题描述
我希望用特定日期预先填写表单字段。
我有一个 CreateView:
class CreateEventView(CreateView):
model = Event
template_name = 'events/form.html'
form_class = EventForm
def get_initial(self):
initial = super(CreateEventView, self).get_initial()
initial['start_date'] = datetime.date(day=2,month=11,year=2018)
return initial
如果我使用这个 ModelForm,它会在文本字段中显示预填充的日期(如预期的那样):
class EventForm(ModelForm):
start_date = DateField()
# ...
但我希望使用一个不错的日期选择器小部件。但随后预填充不再起作用:
class EventForm(ModelForm):
start_date = DateField(widget=DateInput(attrs={'type': 'date'}))
# ...
为什么呢?我能做些什么呢?这种行为是否记录在案?
解决方案
这在 Django 中不是问题。HTML 数据输入需要 format 中的默认值YYYY-MM-DD
。确保它使用该格式的日期值呈现。我怀疑现在它可能呈现为:
<input type='date' name='date' value='22-02-2018'/>
但你想要的是:
<input type='date' name='date' value='2018-02-22'/>
有关演示,请参阅此jsfiddle。
您需要在后端的字符串中正确格式化您的日期值,或者在渲染后执行一些 js 魔术。
推荐阅读
- pandas - 在 Pandas 中将时间戳与工作班次开始相关联
- python - 如何使用应用功能删除大数据框中的单词
- c++ - 设置 Qt 以在 Visual Studio 中的项目中使用
- reactjs - 使用 React-router-dom 和 Redux useSelector hook 保护路由
- javascript - 如何从 getFeatureInfoUrl 获取顶层信息?
- css - 悬停时更改链接的文本颜色和背景颜色
- python - 使用 Tensorflow Probability 拟合局部级别模型
- python - python 文字是否保存在函数体内?
- html - 如何让我的卡片网格项目水平对齐?
- xml - 使用 XSLT 2.0 在输入 XML 中用序列号替换占位符