如何在Django中使用按钮进行删除

如何在Django中使用按钮进行删除,django,django-class-based-views,Django,Django Class Based Views,我有一个项目列表。我正在使用ListView显示它们。列表中的每个项目都位于可折叠块中。我想在可折叠块中放置两个按钮,一个用于编辑项目,另一个用于删除: <a class='btn btn-success' style = 'float:left;' href="/scale/{{scale.pk}}/">Edit Scale</a> <a class='btn btn-danger' style = 'float:right;' href="/scales" na

我有一个项目列表。我正在使用ListView显示它们。列表中的每个项目都位于可折叠块中。我想在可折叠块中放置两个按钮,一个用于编辑项目,另一个用于删除:

<a class='btn btn-success' style = 'float:left;' href="/scale/{{scale.pk}}/">Edit Scale</a>
<a class='btn btn-danger' style = 'float:right;' href="/scales" name="delete_btn">Delete Scale</a>
我试图覆盖Deletionmixin的post和delete方法,但我真的不知道如何将delete按钮与此处关联

warning说,我了解到,并非所有的mixin和基于类的视图都可以一起使用。但我认为问题不在这里


有人能解释一下如何做到这一点吗?

有几个问题

首先,post()中的return语句正在创建一个单独的DeletionMixin实例,这意味着它将无法引用ScaleListView实例的任何字段或方法。你需要这样的东西:

return super(ScaleListView, self).post(request, *args, **kwargs)
但这并不能解决你的问题。DeletionMixin调用get_object(),ListView及其任何父对象都没有实现。DeletionMixin假设您一次只删除一个对象(这听起来像是您正在尝试的)。尝试使用DetailView而不是ListView,看看这会给你带来什么

(当您使用列表时,为什么选择DetailView?因为您不希望视图对整个列表做任何事情。您只处理单个记录(即“细节”),所以这才更有意义。)

return super(ScaleListView, self).post(request, *args, **kwargs)