python - django 1.11 中 SelectDateWidget 的空选项
问题描述
对于 SelectDateWidget,Django 文档说明如下:
如果不需要 DateField,则 SelectDateWidget 将在列表顶部有一个空选项(默认为 ---)。您可以使用 empty_label 属性更改此标签的文本。empty_label 可以是字符串、列表或元组。使用字符串时,所有选择框都会有一个带有此标签的空选项。如果 empty_label 是 3 个字符串元素的列表或元组,则选择框将有自己的自定义标签。标签应按此顺序排列('year_label'、'month_label'、'day_label')。
但是,我不清楚如何使用所需的日期字段设置空选项?我认为这不是一种罕见的情况:没有空选项,但预先选择了默认值,人们可以轻松跳过所需的日期字段并使用默认值保存它而不会注意到。
有人知道该怎么做吗?
解决方案
不幸的是,查看 SelectDateWidget 的代码并没有很好的方法来做到这一点(django 2.1.4)。我的解决方案是在客户端添加空选项(使用 jquery):
$(document).ready(function() {
$('#select-widget-id select').each(function() {
if(!$(this).children('[value=""], [selected]').length) {
$(this).prepend('<option value="" selected="selected">---</option>');
}
});
});
推荐阅读
- python - 有没有办法调整pairplot()的轴限制,但不能作为单独的图?
- typescript - Vue3 反应式嵌套对象和可选类型
- ios - 如何将视图添加到 UIWindow 但在显示的视图控制器下方?
- python - 从 python 子进程执行 shell 函数
- mongodb - Mongo聚合:添加从另一个字段派生的字段
- docker-compose - 在 tmpfs 中存储环境变量
- scala - 结构化流媒体指标理解
- java - JavaFX 场景宽度和高度无法正常工作
- reactjs - 样式化的组件无效的钩子调用 - React
- java - Wildfly 18 在 log4j 记录器之前添加了服务器记录模式