2017-07-07 43 views
0

我想刪除一個對象。這是HTML,當你點擊按鈕todo應刪除(我想打電話給delete_todo): -在Django中刪除一個對象

<ul> 
      {% for all %} 


     </ul> 

這是views.py,

回答

1

您需要更改一些東西你碼。

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> 
+0

只是改變了它,我點擊按鈕,但什麼也沒有發生。 – pycode

+1

我明白了,這與CSRF驗證有關。非常感謝。 – pycode

0

只是爲了對使用的形式和CSRF的補充說明:這是必要的,以確保您的應用程序的不同的用戶可以不要刪除不屬於他們的內容。

在模板中,你需要包括CSRF標記爲這樣:

<form method="post" action={% url 'delete_todo' todo_id=todo.id %}> 
    {% csrf_token %} 
    <input type="button" id="submit" value="Delete" /> 
    </form>