day12 激活/禁用用户

一、添加路由

    #个人信息页面
    url(r'^userinfo/',views.userinfo),
    #启用账户路由
    path('able_account/', views.able_account, name='able_account'),
    #禁用账户路由
    path('disable_account/', views.disable_account, name='disable_account'),
    #升级管理员路由
    path('super_account/',views.super_account,name='super_account'),

二、添加视图函数
views.py中添加

def userinfo(request):
    '''
    个人信息页面函数
    :param request: 
    :return: 
    '''
    info = models.UserInfo.objects.all()

    return render(request,'other/userinfo.html', locals())

def able_account(request):
    '''
    激活用户视图函数
    :param request:
    :return:
    '''
    able_id = request.GET.get('able_id')
    models.UserInfo.objects.filter(nid=able_id).update(is_active=1)
    return redirect('/userinfo/')

def disable_account(request):
    '''
    禁用用户视图
    :param request:
    :return:
    '''
    disable_id = request.GET.get('disable_id')
    models.UserInfo.objects.filter(nid=disable_id).update(is_active=0)
    return redirect('/userinfo/')

def super_account(request):
    '''
    提升管理员视图
    :param request:
    :return:
    '''

    return HttpResponse('ok')

用户管理页面模板层userinfo.html

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="/media/css/{{ username }}/">
</head>
<body>
<nav class="navbar navbar-inverse">
    <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <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="#">{{ blog.site_title }}</a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav">
                <li class="active"><a href="#">博客 <span class="sr-only">(current)</span></a></li>
                <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="/log/">日志</a></li>
                        <li><a href="/userinfo/">用户管理</a></li>
                        <li><a href="#">Something else here</a></li>
                        <li role="separator" class="divider"></li>
                        <li><a href="#">Separated link</a></li>
                        <li role="separator" class="divider"></li>
                        <li><a href="#">One more separated link</a></li>
                    </ul>
                </li>
            </ul>
            <form class="navbar-form navbar-left">
                <div class="form-group">
                    <input type="text" class="form-control" placeholder="Search">
                </div>
                <button type="submit" class="btn btn-default">Submit</button>
            </form>
            <ul class="nav navbar-nav navbar-right">
                {% if request.user.is_authenticated %}
                    <li><a href="#">{{ request.user.username }}</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="#" data-toggle="modal" data-target=".bs-example-modal-lg">修改密码</a></li>
                            <li><a href="/set/avatar/">修改头像</a></li>
                            <li><a href="/backend/">后台管理</a></li>
                            <li role="separator" class="divider"></li>
                            <li><a href="{% url 'logout' %}">退出登陆</a></li>
                        </ul>

                        <div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog"
                             aria-labelledby="myLargeModalLabel">
                            <div class="modal-dialog modal-lg" role="document">
                                <div class="modal-content">
                                    <h1 class="text-center">修改密码</h1>
                                    <div class="row">
                                        <div class="col-md-8 col-md-offset-2">
                                            <div class="form-group">
                                                <label for="">用户名</label>
                                                <input type="text" disabled value="{{ request.user.username }}"
                                                       class="form-control">
                                            </div>
                                            <div class="form-group">
                                                <label for="">原密码</label>
                                                <input type="password" id="id_old_password" class="form-control">
                                            </div>
                                            <div class="form-group">
                                                <label for="">新密码</label>
                                                <input type="password" id="id_new_password" class="form-control">
                                            </div>
                                            <div class="form-group">
                                                <label for="">确认密码</label>
                                                <input type="password" id="id_confirm_password" class="form-control">
                                            </div>
                                            <div class="modal-footer">
                                                <button type="button" class="btn btn-default" data-dismiss="modal">取消
                                                </button>
                                                <button class="btn btn-primary" id="id_edit">修改</button>
                                                <span style="color: red" id="password_error"></span>
                                            </div>
                                            <br>
                                            <br>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </li>
                {% else %}
                    <li><a href="{% url 'reg' %}">注册</a></li>
                    <li><a href="{% url 'login' %}">登陆</a></li>
                {% endif %}
            </ul>
        </div><!-- /.navbar-collapse -->
    </div><!-- /.container-fluid -->
</nav>
<div class="container-fluid">
    <div class="row">
        <div class="col-md-3">
        </div>
        <div class="col-md-9">
            {% if request.user.is_superuser is True %}
                <h1 class="text-center mt-4">用户信息表</h1>
                <div class="m-5">
                    <table class="table table-bordered text-center bg-white-95">
                        <tr style="font-weight: bold">
                            <td>ID</td>
                            <td>用户</td>
                            <td>邮箱</td>
                            <td>地址</td>
                            <td>联系方式</td>
                            <td>注册日期</td>
                            <td>管理员</td>
                            <td>操作</td>
                            <td>高级操作</td>
                        </tr>
                        {% for user in info %}
                            <tr>
                                <td>{{ user.nid }}</td>
                                <td>{{ user.username }}</td>
                                <td>{{ user.email }}</td>
                                <td>{{ user.province }} {{ user.city }}</td>
                                <td>{{ user.telephone}}</td>
                                <td>{{ user.date_joined|date:'Y-m-d' }}</td>
                                <td>{% if user.is_superuser is True %}
                                    是
                                {% else %}
                                    否
                                {% endif %} </td>
                                <td>
                                    {% if user.is_superuser and  request.user.username == user.username %}
                                        <button class="btn btn-info disabled">您无法操作自己的账户</button>
                                    {% elif user.is_superuser %}
                                        <button class="btn btn-primary disabled">您无法操作其他管理员</button>
                                    {% else %}
                                        {% if user.is_active == 1 %}
                                            <a href="{% url 'disable_account' %}?disable_id={{ user.nid }}"><button class="btn btn-danger">禁用账户</button></a>
                                            <button class="btn btn-success disabled">解除禁用</button>
                                        {% else %}
                                            <button class="btn btn-danger disabled">禁用账户</button>
                                            <a href="{% url 'able_account' %}?able_id={{ user.nid }}"><button class="btn btn-success">解除禁用</button></a>
                                        {% endif %}
                                    {% endif %}
                                </td>
                                <td>{% if user.is_superuser %}
                                    <button class="btn btn-warning disabled">已经成为管理员</button>
                                {% else %}
                                    <a href="{% url 'super_account' %}?super_id={{ user.nid }}"><button class="btn btn-primary">提升为管理员</button></a>
                                {% endif %} </td>
                            </tr>
                        {% endfor %}
                    </table>
                </div>
            {% else %}
                <div class="alert alert-danger text-center m-5" role="alert">
                    <h2>你没有资格查看</h2>
                </div>
            {% endif %}


        </div>
    </div>

</body>
</html>
posted @ 2021-12-12 15:02  simon_T  阅读(36)  评论(0编辑  收藏  举报