我有一个ListView和一个DeleteView
class MyDeleteView(DeleteView):
success_url = reverse('list')
我想要选项删除ListView中的项目。如果我接受DeleteView中的确认页面,我知道怎么做,但我不希望我的DeleteView中没有模板。我只是想删除该项目并将用户发回。
我想它应该是POST参数,但HTML应该是什么样的?我想这就像是:
<form method="post" action="/delete/">
<ul>
<li>Item1 (<input type="submit" value="Delete" />)</li>
<li>Item2 (<input type="submit" value="Delete" />)</li>
<li>Item3 (<input type="submit" value="Delete" />)</li>
</ul>
</form>
有人能引导我朝着正确的方向前进吗?谢谢。
答案 0 :(得分:2)
您已经使用POST进行了right方式。
<ul>{% for item in object_list %}
<li><form method="post" action="{% url 'mydelete' pk=item.pk %}">
{{item}} (<input type="submit" value="Delete" />)
</form></li>
{% endif %}</ul>
我不完全确定输入是否可以直接在您尝试遵守的HTML规范中的表单中。所以你可能不得不用一些跨度或容器来表达这个想法。
如果输入提交,并没有为您的设计师提供足够的样式自由,您可以将它们用作<noscript>
后备,并为漂亮版本添加一些<button>
或javascript:链接。
答案 1 :(得分:0)
由于您不想要确认,您可以在deleteview中覆盖GET方法并只使用链接:
class MyDeleteView(DeleteView):
success_url = reverse('list')
def get(self, *a, **kw):
return self.delete(*a, **kw)
<ul>
{% for item in object_list %}
<li>Item1 (<a href="{% url 'mydelete' pk=item.pk %}">Delete</a>)</li>
{% endif %}
</ul>