テンプレートで Django DeleteView を使用しており、URL とビューを作成しました。_confirm_delete テンプレートをロードするプロセスをスキップして、削除をすぐに投稿することは可能ですか?
20606 次
5 に答える
63
DeleteView
応答しPOST
てGET
要求し、GET
表示確認テンプレートを要求し、POST
インスタンスを削除します。
POST
次のようなフォームを使用して、確認なしでリクエストを送信できます。
<form method="POST" action="{% url "your_delete_url_name" %}">
{% csrf_token %}<input type="submit" value="DELETE">
</form>
フォーム ボタンの代わりにリンクを使用したくない場合は、JavaScript を使用して非表示のフォームを作成し、リンク クリックで送信されるようにします。
更新または削除に requestを使用するのは良い習慣ではありませんが、本当に主張する場合は、クラス ビューのメソッドを にGET
ショートカットできます。get
post
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 に答える