iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
自我挑戰組

Django 初學入門 - 從 ROR 的角度來學習 Django系列 第 13

DAY13 - Employer CRUD 中的 Delete

  • 分享至 

  • xImage
  •  

最後終於輪到 CRUD 中的 Delete 了!!現在來看一下如何設定~

連結

<!-- 老闆資訊更新頁 -->
http://127.0.0.1:8000/online/employer/3/delete

urls.py

url 設定

# online/urls.py

# ...省略
urlpatterns += [
    path("employer/<int:pk>/delete/", views.EmployerDelete.as_view(), name="employer-delete"),
]

到目前為主應該都看得懂,int:pkDeleteView 前面都有看過類似的設定

views.py

路徑設定好了,接下來當然是收發 request/responseviews.py 檔案:

# online/views.py

# ... 省略

# delete
class EmployerDelete(DeleteView):
    model = Employer
    success_url = reverse_lazy('employer-list')

這邊也應該很熟悉, success_url 就是指當我們刪除成功後,會返回的網頁

templates

再來就是畫面的地方了,Delete 的 templates 的邏輯跟前面幾個相比特別了一點,不過也就只是一點:

新增表單的 templates -> EmployerDelete 對應的 templates 路徑是 store/online/templates/online/employer_confirm_delete.html,新增好資料夾,最後填上以下資料

<!-- store/online/templates/online/employer_confirm_delete.html -->

{% extends 'sidebar.html' %}

{% block content %}
  <h2>刪除老闆頁面</h2>

  <form action="" method="post">
    {% csrf_token %}
    <input type="submit" value="submit">
  </form>
{% endblock %}

介紹一下我們在此資料夾做了哪些事:
(1) 新增側邊欄
(2) 客製化 block 區塊
(3) 設定一個是 post 的 form 表單

employer-list 頁面新增 delete 連結

我們這邊順手在 employer-list 頁面新增一個 delete 的連結,這樣等等就可以直接點擊這個連結進入 http://127.0.0.1:8000/online/employer/3/delete

<!-- store/online/templates/online/employer_list.html -->
{% extends 'sidebar.html' %}

{% block content %}
  
  <!-- ...省略 -->
{% for employer in employer_list %}
  <!-- ...省略 -->

  <!-- 新增這一段 -->
  <p><a href="{% url 'employer-delete' employer.id %}">點我刪除老闆</a></p>
  <!-- 新增這一段 -->

  <hr>
{% endfor %}

<a href="{% url 'employer-create' %}">新增老闆</a>

{% endblock %}

剛剛新增了一個按鈕,我們先來看一下現在長什麼樣子:
https://ithelp.ithome.com.tw/upload/images/20230924/201623651rmn3hVjlM.png

可以發現多了一個刪除按鈕,因此我們點進此按鈕看一下,可以看到這個畫面 http://127.0.0.1:8000/online/employer/2/delete/
https://ithelp.ithome.com.tw/upload/images/20230924/20162365WHNEfUT3Fh.png

我們點擊 http://127.0.0.1:8000/online/employer/2/delete/ 這個畫面中的 submit 按鈕。

點擊後會發現自動導回 employer-list 頁面,原因應該還記得,就是因為我們在 views.py 那邊有設定 success_url (成功刪除後會重導到指定頁面):

https://ithelp.ithome.com.tw/upload/images/20230924/20162365puVRrp0Pgo.png

最後可以發現畫面上有一個物件被刪除了,代表我們的 delete 功能成功!!!
到這裡為止,我們已經成功把 EmployerCRUD 全部完成,接下來,我們要把其他兩個 Model - StoreProduct 完成~

總結

今天學到哪些東西呢?

  1. Django 物件 DELETE 如何設定

最後附上 Github: https://github.com/eagle0526/Django-store


上一篇
DAY12 - Employer CRUD 中的 Update
下一篇
DAY14 - 第二個 Model 建立 - Store
系列文
Django 初學入門 - 從 ROR 的角度來學習 Django30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言