4

クラスベースのビューに切り替えています。また、JavaScript を使用して、クライアント側で削除を確認します。Django DeleteView には、気にしない削除確認テンプレートが必要です。

Djangoであらゆる種類の削除の確認を無効にする簡単な方法はありますか?

class EntryDeleteView(DeleteView):
    model = Entry
    success_url = reverse_lazy('entry_list')   # go back to the list on successful del
    template_name = 'profiles/entry_list.html' # go back to the list on successful del

    @method_decorator(login_required)
    def dispatch(self, *args, **kwargs):
        return super(EntryDeleteView, self).dispatch(*args, **kwargs)
4

2 に答える 2

8

クライアント側から POST クエリを作成する必要があります (AJAX またはフォームの POST を使用)。これは、GET による削除を許可すると、サービスが CSRF に対して脆弱になるためです。誰かが管理者に電子メールまたはその他の方法で送信し、問題が発生します。

于 2012-03-03T01:17:17.340 に答える
1

またはを使用するとDeleteView、 は確認ページを表示しGET、オブジェクトを削除します。確認後にJS がURL に対して a を実行すると、希望どおりに動作するはずです。POSTDELETEPOST

于 2012-03-03T01:15:45.880 に答える