2011-06-25 43 views
0

我一直在研究這個問題太久了,儘管我所有的研究都找不到什麼問題。無可否認,我是django的新手。刪除一個對象Django-代碼似乎是正確的,但不工作?

我有一張使用表單創建,編輯和更新票據的票務應用程序。我現在試圖根據作爲主鍵的ticket_id來刪除它們。

在我看來,我有:

def deleteTicket(request, ticket_id): 
ticket = Ticket.objects.get(pk=ticket_id) 
ticket.delete.all() 
redirect_to = 'project/tickets.html' 
return HttpResponseRedirect(redirect_to) 

在我的urls.py:

(r'^(?P<project_slug>[^\.^/]+)/tickets/(?P<ticket_id>\d+)$', views.deleteTicket), 

當我開罰單,然後單擊應該把這種觀點的鏈接上出現預期的頁,但我剛剛試圖刪除的票仍然列出。我在任何地方都沒有遇到任何錯誤,但是這段代碼什麼都不做。爲什麼?

感謝您的幫助!它一直讓我瘋狂。

回答

4

我將假定您的縮進是正確的。

Pretty sure你只是應該去ticket.delete(),因爲它是你刪除object,而不是整個查詢集,你不需要.all()。實際上,要刪除你寫的多個對象Ticket.objects.all().delete(),所以你使用的語法只是錯誤的,我很驚訝它沒有拋出異常。

此外,您不應該通過GET請求刪除,只有POST

最後,您應該使用reverse作爲您的重定向或至少一個絕對URL。

相關問題