十七. 增加一个项目协作留言板功能(三)----- 增加任务的修改和删除功能



任务的修改功能主要是进入任务内部,进行实施步骤的添加功能,并对一些内容进行更改,例如,联系人方式等。

 

1.通过 views.py 建立编辑任务函数:

#任务的编辑
def task_edit(request, pk):
    #获取相关任务实例
    task_ins = get_object_or_404(Task, pk=pk)
    #如果收到了相应的POST提交
    if request.method == 'POST':
        #任务联系人为可编辑选项,并填充原先的任务联系人
        task_ins.task_contacts = request.POST['task_contacts']
        task_ins.save()

        #通过所在task_id获取task对象
        process_task = Task.objects.get(id = task_ins.id)
        #如果获取的实施步骤内容不为空,建立process对象,并增加相关信息
        if request.POST['process_content'].strip(' ') != '':
            process_ins = Process()
            process_ins.task = process_task
            process_ins.process_content = request.POST['process_content'].strip(' ')
            process_ins.process_signer = request.user
            process_ins.save()

        return redirect('task_edit', pk=task_ins.id)

    context = {
        'task': task_ins,
        'user': str(request.user),
        'sub_title': '编辑任务',
    }
    return render(request, 'task_edit.html', context)


2.建立task_edit.html:

{% extends "index.html" %}
{% load crispy_forms_tags %}
{% load static %}
{% block page_title %}
    任务处理
{% endblock %}
{% block container %}
    
{{ task.task_category }}
{% csrf_token %}


{% if task.task_status == '处理中' %}
{% else %} {% endif %}
{% include 'modal.html' %} {% endblock %} {% block page_javascript %} {% include 'modal_js.html' %} {% endblock %}

3.增加一条记录,并进入修改页面查看结果:增加一条任务记录

十七. 增加一个项目协作留言板功能(三)----- 增加任务的修改和删除功能_第1张图片

点击修改,进入修改内容

十七. 增加一个项目协作留言板功能(三)----- 增加任务的修改和删除功能_第2张图片


4.增加任务的删除功能,参照之前的方式,通过modal方式进行删除。首先,views.py中增加相应的删除功能。


Views.py:

#任务列表的任务删除
def task_delete(request, pk):
    #获取选定的task实例
    task_ins = get_object_or_404(Task, pk=pk)
    #如果接收到了删除的POST提交,则删除相应条目
    if request.method == 'POST':
        try:
            task_ins.delete()
            #删除成功,则data信息为success
            data = 'success'
        except IntegrityError:
            #如因外键问题,或其他问题,删除失败,则报error
            data = 'error'
        #将最后的data值传递至JS页面,进行后续处理,safe是将对象序列化,否则会报TypeError错误
        return JsonResponse(data, safe=False)


5.尝试将创建记录删除

十七. 增加一个项目协作留言板功能(三)----- 增加任务的修改和删除功能_第3张图片


你可能感兴趣的:(基于Django的开源运维平台)