6

我有一个 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>

谁能带领我朝着正确的方向前进?谢谢你。

4

2 回答 2

2

使用 POST,您已经朝着正确的方向前进。

<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: 链接以获得漂亮的版本。

于 2013-04-12T07:59:03.313 回答
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>
于 2013-04-06T23:26:41.053 回答