我想删除一个对象。这是HTML,当你点击按钮todo
应删除(我想打电话给delete_todo
): -在Django中删除一个对象
<ul>
{% for all %}
</ul>
这是views.py,
我想删除一个对象。这是HTML,当你点击按钮todo
应删除(我想打电话给delete_todo
): -在Django中删除一个对象
<ul>
{% for all %}
</ul>
这是views.py,
您需要更改一些东西你码。
url(r'^(?P<todo_id>[0-9]+)/$', views.delete_todo, name='delete_todo'),
然后,你需要改变delete_todo
本身:
def delete_todo(request, todo_id):
instance = get_object_or_404(Todo, pk=todo_id)
instance.delete()
return redirect('index')
在这里,您可以URLPATTERN delete_todo
你需要添加参数都在改变,这使得在视图来确定要删除的内容对象的 第一使用get_object_or_404
函数来获取带有id的对象。
最后,你需要通过URL的参数从模板查看:
<form action="{% url 'lists:delete_todo' todo_id=todo.id %}" method=post>
<input id="submit" type="button" value="Click" />
</form>
只是为了对使用的形式和CSRF的补充说明:这是必要的,以确保您的应用程序的不同的用户可以不要删除不属于他们的内容。
在模板中,你需要包括CSRF标记为这样:
<form method="post" action={% url 'delete_todo' todo_id=todo.id %}>
{% csrf_token %}
<input type="button" id="submit" value="Delete" />
</form>
只是改变了它,我点击按钮,但什么也没有发生。 – pycode
我明白了,这与CSRF验证有关。非常感谢。 – pycode