2013-07-04 50 views

回答

34

​​響應POSTGET請求,GET希望顯示確認模板,而POST刪除實例。

您可以發送POST要求,不確認與形式是這樣的:

<form method="POST" action="{% url "your_delete_url_name" %}"> 
    {% csrf_token %}<input type="submit" value="DELETE"> 
</form> 

如果你不希望有一個鏈接,而不是形成按鈕,使用一些JavaScript,使無形的形式,將提交於鏈接點擊。

它不是用於更新或刪除GET要求很好的做法,但如果你真的堅持,你可以在你的類視圖快捷get方法post,即:

def get(self, *args, **kwargs): 
    return self.post(*args, **kwargs) 
+1

感謝它與post方法一起工作良好。 – yaniv14

+0

歡迎您:) – bmihelac

1

是的,只需更改下一個參數即可。在返回響應中,請確保您傳入的字典具有以下類似內容:{ 'next': '/<your_path_here>}/' },請確保在添加next參數之前提交更改。您可能想要更改視圖的getpost函數。

+0

我沒有任何GET或POST的意見,一切與DeleteView – yaniv14

+0

那麼好吧生成,以及我不認爲你可以改變它在不改變你的'POST'功能,而且也沒有辦法從1.5開始(據我所知),查看文檔:https://docs.djangoproject.com/en/1.5/ref/class-based-views/flattened-index/#deleteview。如果你不知道如何在CBV中使用'get()'和'post()'函數,那麼我建議你瞭解它們。 –

6

或者你也可以重新定義get()方法在​​:

class YourDeleteView(DeleteView): 

    model = YourModel 
    success_url = '<success_url>' 

    def get(self, request, *args, **kwargs): 
     return self.post(request, *args, **kwargs) 

但要注意與,確保這不會影響其它功能。

1

您只需要覆蓋get_success_url刪除視圖的方法。然後它會直接從數據庫中刪除對象。例如:

class YourView(DeleteView): 
    model = YourModel 

    def get_success_url(self): 
     return reverse('your_redirect_view')