在一個迷你博客應用程序中,我想創建一個刪除函數,以便博客的所有者可以刪除他的條目(僅限他的條目)。 我想做的唯一方法就是使用表單。 雖然我的刪除代碼似乎清晰和正確,但它不起作用。 我的代碼:在Django中刪除對象
def delete_new(request,id):
u = New.objects.get(pk=id).delete()
if request.method == 'POST':
form = DeleteNewForm(request.POST)
form.u.delete()
form.save()
return render_to_response('news/deleteNew.html', {
'form': form,
},
context_instance=RequestContext(request))
,並在模板:
<a href='/news/delete_new/{{object.id}}/'> Delete</a> <br />
這是一個正確的做法?我的意思是,爲此創建一個表單? 也是,只有將刪除鏈接關聯的博客文章的ID作爲參數。這樣對嗎?我的意思是,也許任何用戶可以在url中輸入另一個ID,並刪除另一個條目(最終不是他的)
它卷順利,在短短一行: U = New.objects。過濾器(created_by = request.user).get(pk = id).delete() 謝謝! :) – dana 2010-06-26 17:59:12
確切地說,如果給定的用戶沒有這樣的New對象並且顯示好的錯誤消息(使用你的一個班輪,它將以500錯誤響亮地失敗),你可以添加一些錯誤處理。但基本上,這就是你需要在這裏做的一切:)我很高興我的回答對你有幫助。 – dzida 2010-06-26 18:34:15
我強烈建議使用表格並檢查POST,因爲GETs到頁面不應該改變服務器上的狀態。 (雖然在實踐中這裏發生的事情是相對'安全的') – 2010-06-27 11:53:48