设为首页 加入收藏

TOP

[Django]用户权限学习系列之权限管理界面实现(一)
2017-09-30 16:10:18 】 浏览:6072
Tags:Django 用户 权限 学习 系列 管理 界面 实现

本系列前三章:

http://www.cnblogs.com/CQ-LQJ/p/5604331.htmlPermission权限基本操作指令

http://www.cnblogs.com/CQ-LQJ/p/5609690.htmlUser权限基本操作指令

http://www.cnblogs.com/CQ-LQJ/p/5620490.html设计自有权限管理系统设计思路

正文:

权限管理界面分三部分:一个点击进入该页面的按钮、以及该页面的权限列表、添加按钮,删除按钮;

权限管理界面页面是最基础的设计,并且和用户权限分配界面有着重要的关系.

 

首先需要在template,简称模板中加入一个点击按钮,功能是进入权限管理页面,代码如下:

 <p class="text-center"><button id="qxgl" class="btn">权限管理</button></p>

该按钮的功能大致为:

利用ajax局部刷新出权限管理界面网页,且使用ajax中getJSON函数从后端view中返回所有权限信息(codename为中文的权限)以及相关添加删除按钮.

HTML页面编写java script之前,先将必要的HTML标签写好,我们这里需要一个表格(table)和表单(form),如下:

<form>  
   {% csrf_token %}
   <div id="interface"></div>
   <table class="table" id="t1">
     <caption></caption>
     <thead></thead>
     <tbody></tbody>
     <tfoot></tfoot>
   </table>
</form>

接下来我们看按钮函数如何编写:

      $('#qxgl').click(function(){//权限管理
            $("#interface").html("<h3>权限管理操作界面</h3>"+
                                 "<p class='text-error'><strong>你可以选择对应权限, <button class='btn btn-small btn-danger' type='button' id='perm_del'>点击此处</button>进行删除,也可以点击左侧权限管理按钮刷新权限页面!</strong></p>")
            $("#t1 thead").html("<tr style='background-color:#C0C0C0;'><th>单选框</th><th>权限类型</th><th>权限名称</th><th>权限描述</th></tr>");
            $.getJSON("{% url 'permmanage' %}", 
              function(ret){  
                $('#t1 tbody').empty();$('#t1 tfoot').empty();
                for (var i = 0; i <= ret.length - 1; i++) {
                    $('#t1 tbody').append("<tr><td><input type='radio' name='permission' value='"+ret[i].codename+"'></td>"+
                                          "<td>"+ret[i].content_type_id+"</td><td>"+ret[i].codename+"</td>"+
                                          "<td>"+ret[i].name+"</td></tr>"); 
                }
                $('#t1 tfoot').append("<tr><td>"+
                                      "<button class='btn btn-small btn-success' type='button' id='perm_add'>新增权限</button>"+
                                      "</td>"+
                                      "<td><input type='text' class='input-mini' placeholder='.input-mini' id='id'></td>"+
                                      "<td><input type='text' class='input-medium' placeholder='.input-medium' id='codename'></td>"+
                                      "<td><input type='text' class='input-xxlarge' placeholder='.input-xxlarge' id='name'></td>"+
                                      "</tr>");
            }); 
        })

上面代码中$.getJSON的功能是从后台返回所有中文权限的json参数到前台,另外到这里我们需要知道两件事情:
第一:django的permisson有三个字段,分别对应content_type_id 权限类型,codename 权限名称,name 权限描述,permission的用法跟普通的模型使用一样

第二:查询中文权限需要用到正则表达式,需要用到模型api中的iregex,查询全部中文权限代码:

Permission.objects.filter(codename__iregex=u'[\u4e00-\u9fa5]').values()

好了,到这里我们跳到django后端配置url和view便可实现该按钮功能:
配置url:

home_patterns = [
    url(r'permmanage/$', 'home.views.permmanage', name='permmanage'),
] urlpatterns = [ url(r'^$', 'login.views.login_view', name='login_view'), # url(r'^blog/', include('blog.urls')), u
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python模块基础之json,requeste.. 下一篇python的编码

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目