29

テンプレートで Django DeleteView を使用しており、URL とビューを作成しました。_confirm_delete テンプレートをロードするプロセスをスキップして、削除をすぐに投稿することは可能ですか?

4

5 に答える 5

63

DeleteView応答しPOSTGET 要求し、GET表示確認テンプレートを要求し、POSTインスタンスを削除します。

POST次のようなフォームを使用して、確認なしでリクエストを送信できます。

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

フォーム ボタンの代わりにリンクを使用したくない場合は、JavaScript を使用して非表示のフォームを作成し、リンク クリックで送信されるようにします。

更新または削除に requestを使用するのは良い習慣ではありませんが、本当に主張する場合は、クラス ビューのメソッドを にGETショートカットできます。getpost

def get(self, *args, **kwargs):
    return self.post(*args, **kwargs)
于 2013-07-04T18:29:39.233 に答える
18

またはget()、あなたのメソッドを再定義することができますDeleteView:

class YourDeleteView(DeleteView):

    model = YourModel
    success_url = '<success_url>'

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

ただし、これには注意してください。これが他の機能に影響を与えないようにしてください。

于 2016-02-06T20:25:31.290 に答える
-2

get_success_url必要なのは、削除ビューのメソッドをオーバーライドすることだけです。次に、DB からオブジェクトを直接削除します。例えば:

class YourView(DeleteView):
    model = YourModel

    def get_success_url(self):
        return reverse('your_redirect_view')
于 2016-10-18T05:53:49.230 に答える