美文网首页
Django系列12-员工管理系统实战--时间控件

Django系列12-员工管理系统实战--时间控件

作者: 只是甲 | 来源:发表于2022-09-15 10:31 被阅读0次

    一. 问题描述

    我们用户新增新增页面,时间控件都是自己输入的,很有可能输入的不符合规范,导致报错,而且也不方便。 前端一般有时间控件,可以进行选择。

    二. 解决方案

    使用Bootstrap的时间控件即可

    2.1 用户新增页面(Form)

    2.1.1 layout.html

    image.png
    {% load static %}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.min.css' %}">
        <style>
            .navbar {
                border-radius: 0;
            }
        </style>
        {% block css %}{% endblock %}
    </head>
    <body>
    <nav class="navbar navbar-default">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
                        data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="#"> 用户管理系统 </a>
            </div>
            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                <ul class="nav navbar-nav">
                    <li><a href="/depart/list/">部门管理</a></li>
                    <li><a href="/user/list/">用户管理</a></li>
                    <li><a href="/pretty/list/">靓号管理</a></li>
                    <li><a href="#">Link</a></li>
    
    
                </ul>
                <ul class="nav navbar-nav navbar-right">
                    <li><a href="#">登录</a></li>
    
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
                           aria-expanded="false">只是甲 <span class="caret"></span></a>
                        <ul class="dropdown-menu">
                            <li><a href="#">个人资料</a></li>
                            <li><a href="#">我的信息</a></li>
                            <li role="separator" class="divider"></li>
                            <li><a href="#">注销</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
    
    <div>
        {% block content %}{% endblock %}
    </div>
    
    
    <script src="{% static 'js/jquery-3.6.0.min.js' %}"></script>
    <script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.min.js' %}"></script>
    {% block js %}{% endblock %}
    </body>
    </html>
    

    2.1.2 user_add.html

    image.png image.png image.png
    {% extends 'layout.html' %}
    {% load static %}
    
    {% block css %}
        <link rel="stylesheet" href="{% static 'plugins/bootstrap-datepicker/css/bootstrap-datepicker.min.css' %}">
    {% endblock %}
    
    {% block content %}
        <div class="container">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h3 class="panel-title"> 新建用户 </h3>
                </div>
                <div class="panel-body">
                    <form method="post">
                        {% csrf_token %}
    
                        <div class="form-group">
                            <label>姓名</label>
                            <input type="text" class="form-control" placeholder="姓名" name="user"/>
                        </div>
    
                        <div class="form-group">
                            <label>密码</label>
                            <input type="text" class="form-control" placeholder="密码" name="pwd"/>
                        </div>
    
                        <div class="form-group">
                            <label>年龄</label>
                            <input type="text" class="form-control" placeholder="年龄" name="age"/>
                        </div>
    
                        <div class="form-group">
                            <label>余额</label>
                            <input type="text" class="form-control" placeholder="余额" name="ac"/>
                        </div>
    
    
                        <div class="form-group">
                            <label>入职时间</label>
                            <input id="dt"  type="text" autocomplete="off" class="form-control" placeholder="入职时间" name="ctime"/>
                        </div>
    
                        <div class="form-group">
                            <label>性别</label>
                            <select class="form-control" name="gd">
                                {% for item in gender_choices %}
                                    <option value="{{ item.0 }}">{{ item.1 }}</option>
                                {% endfor %}
                            </select>
                        </div>
    
                        <div class="form-group">
                            <label>部门</label>
                            <select class="form-control" name="dp">
                                {% for item in depart_list %}
                                    <option value="{{ item.id }}">{{ item.title }}</option>
                                {% endfor %}
                            </select>
                        </div>
    
                        <button type="submit" class="btn btn-primary">提 交</button>
                    </form>
                </div>
            </div>
        </div>
    {% endblock %}
    
    
    
    {% block js %}
        <script src="{% static 'plugins/bootstrap-datepicker/js/bootstrap-datepicker.js' %}"></script>
        <script src="{% static 'plugins/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js' %}"></script>
        <script>
            $(function () {
                $('#dt').datepicker({
                    format: 'yyyy-mm-dd',
                    startDate: '0',
                    language: "zh-CN",
                    autoclose: true
                });
    
            })
        </script>
    {% endblock %}
    

    2.1.3 页面测试

    页面可以直接进行选择入职时间


    image.png

    2.2 用户新增页面(ModelForm)

    2.2.1 user_model_form_add.html

    image.png image.png image.png
    {% extends 'layout.html' %}
    {% load static %}
    
    {% block css %}
        <link rel="stylesheet" href="{% static 'plugins/bootstrap-datepicker/css/bootstrap-datepicker.min.css' %}">
    {% endblock %}
    
    {% block content %}
    
        <div class="container">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h3 class="panel-title"> 新建用户 </h3>
                </div>
                <div class="panel-body">
                    <form method="post" novalidate>
                        {% csrf_token %}
    
                        {% for field in form %}
                            <div class="form-group">
                                <label>{{ field.label }}</label>
                                {{ field }}
                                <span style="color: red;">{{ field.errors.0 }}</span>
                            </div>
                        {% endfor %}
    
                        <button type="submit" class="btn btn-primary">提 交</button>
                    </form>
                </div>
            </div>
        </div>
    
    {% endblock %}
    
    
    {% block js %}
        <script src="{% static 'plugins/bootstrap-datepicker/js/bootstrap-datepicker.js' %}"></script>
        <script src="{% static 'plugins/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js' %}"></script>
        <script>
            $(function () {
                $('#id_create_time').datepicker({
                    format: 'yyyy-mm-dd',
                    startDate: '0',
                    language: "zh-CN",
                    autoclose: true
                });
    
            })
        </script>
    {% endblock %}
    

    2.3 限制时间选择

    默认情况下,我们入职时间都是不能选择今天之前的日期,如果有特殊情况,例如上周五下午入职的员工,我们漏掉了,今天才录入,发现选择不了时间。

    此时可以进行调整

    image.png

    页面测试:

    image.png

    参考:

    1. https://www.bilibili.com/video/BV1NL41157ph

    相关文章

      网友评论

          本文标题:Django系列12-员工管理系统实战--时间控件

          本文链接:https://www.haomeiwen.com/subject/vikegrtx.html