Django实战1-权限管理功能实现-05:组织架构的添加

 

 

组织架构主要是权限管理模块中人员的层级架构,可以是公司的组织结构、部分、小组等。

1 新建组织架构功能实现

1.1 组织架构模板页

组织架构模板页,是管理组织架构,对组织架构进行增、改、删、查操作时用户所访问的页面。
1、新建文件夹sandboxMP/templates/system/structure用来存放组织架构相关的所有模板
2、复制sandboxMP/templates/index.html到刚创建的structure目录,重命名为structure.html
3、打开刚复制的structure.html文件,添加代码中的汉字内容:

{% block content %} <!-- Main content --> <section class="content"> 组织架构页:文字部分是新增内容,这里是组织架构的基础页面,有关组织架构的操作查询都是在这里完成的。 </section> <!-- /.content --> {% endblock %}

1.2 组织架构基础视图

1、新建文件sandboxMP/apps/system/views_structure.py,有关组织架构的所有操作视图都在views_structure.py中定义。
2、在刚创建的views_structure.py文件中定义组织架构基础视图:

from django.views.generic.base import TemplateView

from .mixin import LoginRequiredMixin
 class StructureView(LoginRequiredMixin, TemplateView): template_name = 'system/structure/structure.html' 

1.3 组织架构访问URL

修改sandboxMP/apps/system/urls.py , 添加下面内容:

from . import views_structure

app_name = 'system'

urlpatterns = [
    '''原有内容省略' path('basic/structure/', views_structure.StructureView.as_view(), name='basic-structure'), ] 

运行项目,就可以访问组织架构页面了 http://127.0.0.1:8000/system/basic/structure/

2 添加组织架构功能实现

2.1 组织架构的添加视图

添加视图实现的功能有:渲染一个添加页面,接收添加页面提交的数据并保存到数据库
1、修改sandboxMP/apps/system/forms.py,添加如下内容:

from .models import Structure

class StructureForm(forms.ModelForm): class Meta: model = Structure fields = ['type', 'name', 'parent'] 

2、修改sandboxMP/apps/system/views_structure.py,新增如下内容:

import json

from django.views.generic.base import View
from django.shortcuts import render from django.shortcuts import HttpResponse from .models import Structure from .forms import StructureForm  class StructureCreateView(LoginRequiredMixin, View): def get(self, request): ret = dict(structure_all=Structure.objects.all()) return render(request, 'system/structure/structure_create.html', ret) def post(self, request): res = dict(result=False) structure = Structure() structure_form = StructureForm(request.POST, instance=structure) if structure_form.is_valid(): structure_form.save() res['result'] = True return HttpResponse(json.dumps(res), content_type='application/json') 

2.2 组织架构添加功能的URL配置:

修改sandboxMP/apps/system/urls.py, 在urlpatterns中添加新的内容:

urlpatterns = [
    '''原有内容省略'''
    path('basic/structure/create/', views_structure.StructureCreateView.as_view(), name='basic-structure-create'),
]

2.3 组织架构的添加页模板

组织架构的添加页,是一个弹窗页面,继承了sandboxMP/templates/base_layer.html,页面效果:

1、在sandboxMP/templates/system/structure目录中新建组织架构的添加模板:structure_create.html
2、删除structure_create.html原有内容,添加下面内容:

{% extends 'base-layer.html' %} {% load staticfiles %} {% block css %} <link rel="stylesheet" href="{% static 'js/plugins/layer/skin/layer.css' %}"> {% endblock %} {% block main %} <div class="box box-danger"> <form class="form-horizontal" id="addForm" method="post"> {% csrf_token %} <div class="box-body"> <fieldset> <legend> <h4>组织架构信息</h4> </legend> <div class="form-group has-feedback"> <label class="col-sm-2 control-label">名称</label> <div class="col-sm-3"> <input class="form-control" name="name" type="text" /> </div> <label class="col-sm-2 control-label">类别</label> <div class="col-sm-3"> <select class="form-control" name="type"> <option value="unit">单位</option> <option value="department">部门</option> </select> </div> </div> <div class="form-group has-feedback"> <label class="col-sm-2 control-label">所属</label> <div class="col-sm-3"> <select class="form-control" name="parent"> <option></option> {% for stru in structure_all %} <option value={{ stru.id }}> {{ stru.name }} </option> {% endfor %} </select> </div> </div> </fieldset> </div> <div class="box-footer "> <div class="row span7 text-center "> <button type="button" id="btnCancel" class="btn btn-default margin-right ">重置</button> <button type="button" id="btnSave" class="btn btn-info margin-right ">保存</button> </div> </div> </form> </div> {% endblock %} {% block javascripts %} <script type="text/javascript"> $("#btnSave").click(function () { var data = $("#addForm").serialize(); $.ajax({ type: $("#addForm").attr('method'), url: "{% url 'system:basic-structure-create' %}

转载于:https://www.cnblogs.com/jameslove/p/10988311.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值