iT邦幫忙

2024 iThome 鐵人賽

DAY 26
0
Python

Django - 製作網頁一點通系列 第 26

Day26 - 任務刪除功能實作

  • 分享至 

  • xImage
  •  

我們接下來會建立以下幾個頁面

  • 首頁
  • 登入頁面
  • 註冊頁面
  • 任務頁面

昨天我們做了查看任務頁面和新增任務表單,今天來做刪除任務的icon。

  1. 定義delete_task的視圖

task.delete(): 刪除指定的任務。
redirect('task'): 刪除任務後,將用戶重定向回任務列表頁面。

@login_required
def delete_task(request, id):
    user = request.user
    tasks = Task.objects.filter(user_id=user)
    # 取得共享的任務
    sharedTasks = SharedTask.objects.filter(Q(user=user) | Q(task__user_id=user))
    # 排除共享任務後的我的任務
    my_tasks = tasks.exclude(id__in=sharedTasks.values_list('task__id', flat=True))

    previous_url = request.META.get('HTTP_REFERER')

    task = Task.objects.get(id=id)
    add_log(task, user, "刪除")
    task.delete()
    return redirect('task')
  1. URL

為了讓 Django 知道何時呼叫這個視圖,我們需要在 urls.py 文件中添加對應的路由。

path('task/delete/<slug:id>/',delete_task),

刪除前
https://ithelp.ithome.com.tw/upload/images/20241010/20169478vFvT0n2eeM.png

詢問是否要刪除
https://ithelp.ithome.com.tw/upload/images/20241010/20169478sreQpzo174.png

刪除後
https://ithelp.ithome.com.tw/upload/images/20241010/20169478sYUZu04PdJ.png


上一篇
Day25 - 任務編輯功能實作
下一篇
Day27 - 多人共享任務功能實作
系列文
Django - 製作網頁一點通28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言