Django 如何使用日期时间选择器规范用户的时间输入示例代码详解

作者:young 时间:2023-06-18 23:56:20 

如果你的模型中含有 datetime 类型的字段,表单中需要用户输入日期和时间,那么你如何保证不同用户输入的时间都遵循一定的格式 (DD/MM/YYYY 或者 YYYY-MM-DD) 是个必须要考虑的问题。一个更好的方式是在前端使用日期时间选择器 DateTimePicker,以日历的形式统一选择输入时间,如下图所示。小编今天将尝试以最少的代码教你实现如何在 Django 项目中实现日期时间选择器 DateTimePicker。

Django 如何使用日期时间选择器规范用户的时间输入示例代码详解

示范模型

假如我们有如下一个 Article 模型,含有 pub_date 字段,其格式是 DateTimeField。

#models.py


class Article(models.Model):
"""文章模型"""

title = models.CharField('标题', max_length=200, db_index=True)
pub_date = models.DateTimeField('发布时间', null=True)

表单

#forms.py


#forms.py
class ArticleForm(forms.ModelForm):
class Meta:
model = Article
exclude = ()

视图和 URLConf

#views.py


class ArticleCreateView(CreateView):
model = Article
form_class = ArticleForm
template_name = 'blog/article_form.html'

#urls.py


re_path(r'^article/create/$', views.ArticleCreateView.as_view(), name='article_create'),

模板

#template/blog/article_form.html


{% block content %}
<form action="" method="post" enctype="multipart/form-data">
{{ form.as_p }}
{% csrf_token %}
<p><input type="submit" value="Save content"></p>
</form>
</p>
{% endblock %}

此时当你创建文章时,你将看到 pub_date 发布日期仍然是文本输入格式,如下图所示:

Django 如何使用日期时间选择器规范用户的时间输入示例代码详解

接下来就是见证奇迹的时刻了。你在模板中稍微增加几行 js 的代码,如下所示:


<form action="" method="post" enctype="multipart/form-data">
{{ form.as_p }}
{% csrf_token %}
<p><input type="submit" value="Save content"></p>
</form>
</p>
{% endblock %}
{% block js %}
<!-- XDSoft DateTimePicker -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.min.css" integrity="sha256-DOS9W6NR+NFe1fUhEE0PGKY/fubbUCnOfTje2JMDw3Y=" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.full.min.js" integrity="sha256-FEqEelWI3WouFOo2VWP/uJfs1y8KJ++FLh2Lbqc8SJk=" crossorigin="anonymous"></script>
<script>
$(function () {
$("#id_pub_date").datetimepicker( {
 format:'Y-m-d H:i',
});
});
</script>
{% endblock %}

此时你把鼠标移动到日期输入栏,美观的日期和时间选择器就出现了,如下图所示:

Django 如何使用日期时间选择器规范用户的时间输入示例代码详解

工作原理

这几行 Js 的代码作用是引入 XDSoft DateTimePicker 的 js 代码和 css 样式,针对 id_pub_date 的表单字段生成一个 datetimepicker 的实例,并设置输入日期和时间格式。如果你在模型中 DateTimeField 的字段名为 visit_date, 你只需为 id_visit_date 再生成一个实例即可。Django 的表单会默认为每个输入字段 id 加上 id_的前缀。

前端基于 JS 的日期和时间选择器很多,比如 BootstrapDateTimePicker,Fengyuanzhen's DateTimePicker, 但 Django 中最简易方便使用的还是 XDSoft DateTimePicker, 强烈推荐。

来源:http://www.bigyoung.cn/posts/75/

标签:django,日期时间,选择器
0
投稿

猜你喜欢

  • Python实现计算文件MD5和SHA1的方法示例

    2023-12-07 06:55:46
  • 关于MySQL绕过授予information_schema中对象时报ERROR 1044(4200)错误

    2024-01-24 07:49:27
  • python生成九宫格图片

    2022-09-09 04:46:34
  • JS图片根据鼠标滚动延时加载的实例代码

    2024-04-22 13:22:33
  • python读取excel指定列数据并写入到新的excel方法

    2022-04-06 20:15:46
  • 设计的技术含量

    2009-01-12 18:20:00
  • 基于PyQT5制作一个桌面摸鱼工具

    2021-02-06 17:57:21
  • sqlserver 导出插入脚本代码

    2012-01-29 18:04:43
  • PostgreSQL基础知识之SQL操作符实践指南

    2024-01-19 18:31:34
  • Python 读取位于包中的数据文件

    2023-06-09 00:16:03
  • 解析JavaScript中的标签语句

    2024-05-13 10:35:07
  • Django学习笔记之View操作指南

    2023-05-29 14:08:47
  • 教你使用pyqt实现桌面歌词功能

    2021-04-22 16:11:04
  • python 实现控制鼠标键盘

    2023-08-04 09:37:56
  • Python 数据可视化之Matplotlib详解

    2022-12-30 05:33:21
  • js实现微信聊天效果

    2024-04-16 09:14:33
  • django中使用原生sql语句的方法步骤

    2023-06-29 16:36:07
  • 详解Python yaml模块

    2022-08-14 12:15:18
  • xmind2022下载非试用超详细图文教程

    2023-06-03 18:52:06
  • 后端开发使用pycharm的技巧(推荐)

    2021-11-16 14:50:07
  • asp之家 网络编程 m.aspxhome.com