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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具