十八. 增加一个项目协作留言板功能(四)----- 增加实施步骤的增删改查功能
来源:互联网 发布:linux init.d不见了 编辑:程序博客网 时间:2024/05/20 08:43
进入任务列表,我们无法查看到相应的实施步骤,那么接下来我们就针对实施步骤进行相应的处理。
1. 在任务中显示实施步骤,由于实施步骤的增加功能已经在views.py的task_edit中已经实现了,因此在task_edit.html中只要读取相应的process内容并予以显示就可以了。
Task_edit.html:
<!-----显示处理过程 BEGIN----><div class="col-sm-8 pull-right"> <div id="div_id_process_content" class="form-group"> <div class="controls "> <!--从process中获取所有的item并显示---> {% for item in task.process_set.all %} <dl> <dt>处理时间</dt> <dd>{{ item.process_signtime }}</dd> <dt>处理人</dt> <dd>{{ item.process_signer }}</dd> </dl> <dl> <dt>处理过程</dt> <dd>{{item.process_content}}</dd> </dl> <hr/> {% endfor %} </div> </div> </div> <!-----处理过程 END---->
可以看到,此时再增加实施步骤,就可以在右边列看到相应的显示。
2. 对实施步骤进行修改
1)有时候需要进行实施步骤的修改,那么我们在forms.py中建立实施步骤form:#建立实施步骤的表单class ProcessForm(forms.Form): process_content = forms.CharField(label = '处理过程',widget=forms.Textarea)
2) 在views.py中建立,实施步骤的修改功能:
#实施步骤的修改def process_edit(request, pk): #获取相应的实施步骤 process_ins = get_object_or_404(Process, pk=pk) #如果收到了POST提交 if request.method == 'POST': #调用process的form form = ProcessForm(request.POST) if form.is_valid(): process_ins.process_content = request.POST['process_content'].strip(' ') process_ins.process_signtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) process_ins.save() return redirect('task_edit', pk=process_ins.task_id) #将之前的process内容放入processform form = ProcessForm(initial={'process_content': process_ins.process_content}) #将相应的context值传递到实施步骤修改页面 context = { 'id': process_ins.task_id, 'form': form, 'sub_title': '编辑任务', } return render(request, 'process_edit.html', context)
3) 在task_edit.html中建立一个修改的链接:
{% for item in task.process_set.all %}… <!--如果用户是该实施步骤的登记人且任务的状态为处理中,那么可以对实施步骤进行更改或删除---> {% if user == item.process_signer and task.task_status == '处理中' %} <span> <a href="{% url 'process_edit' item.id %}" style="color:grey">编辑</a>| </span> {% endif %} <hr/>{% endfor %}
4) 在urls.py中新增相关信息
#实施步骤url(r'^process_edit/(?P<pk>\d+)/$', echo.views.process_edit, name='process_edit'),
5) 建立一个process_edit.html:
{% extends "index.html" %}{% load crispy_forms_tags %}{% block page_title %} 任务处理{% endblock %}{% block container %} <div class="row"> <div class="col-sm-6 pull-left"> <form method='POST' action=''>{% csrf_token %} {{ form | crispy }} <br> <input class='btn btn-primary' type='submit' value='提交' /> <a href="{% url 'task_edit' id %} "><input class='btn btn-default' type='button' value='取消' /></a> </form> </div> </div>{% endblock %}
6) 测试相关功能修改
3. 删除相关实施步骤
1) 在task_edit中增加删除链接
<span> <a href="{% url 'process_edit' item.id %}" style="color:grey">编辑</a>| <a id="modal_button_2" class="grey" data-toggle="modal" href="#modal_form" rel="{% url 'process_delete' item.id %}" content="确认删除内容为{{ item.process_content }}的记录么?" title="删除记录">删除</a></span>
2) 在urls.py中增加相关信息
#实施步骤url(r'^process_edit/(?P<pk>\d+)/$', echo.views.process_edit, name='process_edit'),url(r'^process_delete/(?P<pk>\d+)/$',echo.views.process_delete, name='process_delete'),
3) 在views.py中增加删除函数,通过AJAX方式来进行删除
#实施步骤删除def process_delete(request, pk): #获取相应的实施步骤 process_ins = get_object_or_404(Process, pk=pk) #如果接收到了POST的提交 if request.method == 'POST': try: process_ins.delete() #删除成功,则data信息为success data = 'success' except IntegrityError: #如因外键问题,或其他问题,删除失败,则报error data = 'error' #将最后的data值传递至JS页面,进行后续处理,safe是将对象序列化,否则会报TypeError错误 return JsonResponse(data, safe=False)
4) 验证删除功能
0 0
- 十八. 增加一个项目协作留言板功能(四)----- 增加实施步骤的增删改查功能
- 十七. 增加一个项目协作留言板功能(三)----- 增加任务的修改和删除功能
- 十五.增加一个项目协作留言板功能(一)----- 建立留言板的model
- 十九. 增加一个项目协作留言板功能(五)----- 增加添加附件功能
- 十六.增加一个项目协作留言板功能(二)----- 建立一个任务管理的列表页面
- 二十. 增加一个项目协作留言板功能(六)----- 增加一个任务结束按钮
- 流程总结:实现增删改查一组功能的步骤
- C# WinForm 实现增删改查等功能(Access版) 系列之二-增加
- NetBeans界面的增删改查功能
- StringBuffer常见功能(增删改查)
- 帝国CMS留言板增加字段功能
- ABP基础实践训练,一个简易的博客(增删改查)等功能 一:
- Android--数据库的增删改查之数据库的增加
- Apache增加SSL功能的步骤
- Yii2增删改查 - 增加、修改、删除
- sql sever增删查改之--------------增加
- 关于老项目增加功能的问题
- 开发平台之美:10分钟内实现一个销售订单功能的增删改查
- 简单DrawerLayout与ActionBar的结合使用
- TrueCrypt 密码找回工具
- 面向对象的设计原则第一篇:Blacksmith的赢娶白富美的富强生活
- Android中ListView的使用(三)----- 提升ListView运行效率
- JVM: How to analyze Thread Dump
- 十八. 增加一个项目协作留言板功能(四)----- 增加实施步骤的增删改查功能
- 使用cocoaPods import导入时没有提示的解决办法
- HQL:使用面向对象的HQL查询语言
- Leetcode no. 111
- web笔记
- 操作系统-锁机制
- jQuery遍历
- cygwin安装Cygwin/X需要选择的包
- SecureCRT简单的安装和激活教程