[英]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基於類的通用視圖,在這種情況下,您可能會使用ListView
和DeleteView
。
對於列表視圖,可以使用類似以下的內容:
# 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.