当前位置: 首页 > news >正文

04 django管理系统 - 部门管理 - 新增部门

在03,我们完成了部门列表的展示,下面进入新增部门的部分。

首先增加新增部门入口

<div class="panel-heading"><a class="btn btn-primary" href="/depart/add/" role="button">添加部门</a>
</div>

配置URL路由

urlpatterns = [# 部门管理path("dept/list/", dept.dept_list),path("dept/add/", dept.dept_add),
]

定义dept_add函数

"""新建部门"""
def dept_add(request):pass

我们使用ModelForm来实现。先重写ModelForm类,放在utils文件夹中,bootstrap.py

from django import formsclass BootStrap:bootstrap_exclude_fields = []def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)# 循环ModelForm中的所有字段,给每个字段的插件设置for name, field in self.fields.items():if name in self.bootstrap_exclude_fields:continue# 字段中有属性,保留原来的属性,没有属性,才增加。if field.widget.attrs:field.widget.attrs["class"] = "form-control"field.widget.attrs["placeholder"] = field.labelelse:field.widget.attrs = {"class": "form-control","placeholder": field.label}class BootStrapModelForm(BootStrap, forms.ModelForm):passclass BootStrapForm(BootStrap, forms.Form):pass

然后我们接着定义DeptModelForm类,继承BootStrapModelForm

"""部门类的ModelForm"""class DeptModelForm(BootStrapModelForm):class Meta:model = Deptfields = "__all__"

接着继续定义函数dept_add的业务逻辑

def dept_add(request):"""1. 获取表单数据2. 校验数据3. 保存数据4. 跳转页面"""title = '新建部门'if request.method == 'GET':form = DeptModelForm()return render(request, 'dept_add.html', {'form': form, 'title': title})

新建dept_add.html

{% extends 'base.html' %}{% block content %}<div class="container"><div class="panel panel-default"><div class="panel-heading"><h3 class="panel-title"> {{ title }} </h3></div><div class="panel-body"><form method="POST" action="" 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 %}

效果如下:

下面实现填写数据,并保存到数据库中去。使用ModelForm即可实现。

"""新建部门"""def dept_add(request):title = '新建部门'if request.method == 'GET':form = DeptModelForm()return render(request, 'dept_add.html', {'form': form, 'title': title})form = DeptModelForm(data=request.POST)if form.is_valid():form.save()return redirect('/dept/list')return render(request, 'dept_add.html', {'form': form, 'title': title})

效果如下:

到此,就实现了新建部门的功能。


http://www.mrgr.cn/news/49943.html

相关文章:

  • 在java 中如何实现执行linux命令,通过post接口代理出来?
  • 【Hadoop】HDFS基本操作
  • JavaScript 常用方法
  • 牛客网上最全的Java八股文整理,涵盖Java全栈技术点
  • 如何下载3GPP协议?
  • 智慧交通:科技保障出行安全
  • 智慧灌区信息化管理系统解决方案
  • Libevent源码剖析-开篇
  • ffmpeg截取一段视频中一段视频
  • 从源码到平台:使用视频美颜SDK构建高性能直播美颜系统详解
  • 怎么把wma格式转换成mp3?介绍几种wma转换成MP3的转换方法
  • 麦沃德提升会议效率与质量:一款全面的会议管理系统
  • RuntimeError: Unable to find a valid cuDNN algorithm to run convolution
  • Redis日常运维
  • 前后分离项目记录
  • FrameWork使用EfCore数据库映射举例
  • 【live2d】看板娘人物模型使用方法
  • CASA(Carnegie-Ames-Stanford Approach) 模型原理及实践技术
  • 【Linux】解析信号的本质&相关函数及指令的介绍
  • 嵌入式归一板,传统归一板。你会如何选择?