我目前正在使用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)
我想在每张卡片上添加删除链接,将其从此列表中删除,最好使用确认对话框。关于如何做到这一点的任何建议都会很棒。
非常感谢。
答案 0 :(得分:0)
我建议使用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')
对于删除操作的确认,来自DetailView
主题的Django documentation:
显示确认页面并删除现有页面的视图 宾语。只有请求方法是,才会删除给定的对象 POST。如果通过GET获取此视图,它将显示确认 应该包含POST到同一URL的表单的页面。
另请注意,您可以将参数传递给url
模板标记,例如:
<a href="{% url 'card' id=card.id %}">
而不是:
<a href="{% url 'card' %}/{{ card.id }}">
注意:我猜测您的card.id
网址的card
参数名称为id
- 您必须根据urls.py
更新此参数参数名称不同。