簡體   English   中英

Django-如何從列表中刪除模型項

[英]Django - how to delete model item from list

我目前正在使用Django構建一個應用程序,目的是創建用戶故事卡(有點像Trello板)。

在一頁上,我的卡片顯示為列表:

在此處輸入圖片說明

該列表的代碼是:

<h1>ScrumBuddy Board</h1>
   <ul>
          {% for card in cards.all %}
              <li class="card"><a href="{% url 'card' %}/{{ card.id }}">{{ card.title }}</a>
             </li>
          {% endfor %}

   </ul>

板的視圖定義為:

def board(request):
    cards = Card.objects
    context = {'cards': cards}
    return render(request, 'scrumbuddy/board.html', context)

我想為每個卡片添加一個刪除鏈接,以將其從此列表中刪除,最好在確認對話框中添加。 關於如何做到這一點的任何建議都很棒。

非常感謝。

我建議使用Django基於類的通用視圖,在這種情況下,您可能會使用ListViewDeleteView

對於列表視圖,可以使用類似以下的內容:

# views.py
from django.views.generic import ListView
from scrumbuddy.models import Card

class CardList(ListView):
    model = Card

對於刪除視圖,如下所示:

# views.py
from django.views.generic.edit import DeleteView
from django.urls import reverse_lazy
from scrumbuddy.models import Card

class CardDelete(DeleteView):
    model = Card
    success_url = reverse_lazy('card-list')

就刪除操作的確認而言,請參閱Django 文檔中的DetailView主題:

顯示確認頁面並刪除現有對象的視圖。 僅當請求方法為POST時,才會刪除給定的對象。 如果通過GET獲取此視圖,它將顯示一個確認頁面,該頁面應包含一個張貼到相同URL的表單。

另外,請注意,您可以將參數傳遞給url模板標記,例如:

<a href="{% url 'card' id=card.id %}">

代替:

<a href="{% url 'card' %}/{{ card.id }}">

注:我猜到了card.id到您的參數card網址名為id -你必須更新此按你的urls.py如果該參數的名稱不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM