2016-08-30 8 views
0

私が自分でURLを入力しようとしたかどうかを確認しようとしているか、URLをたどり、私が彼のために作成したフォームに必要な値を入れてください。 Ungenericクラスでは、そのことを確認できます -投稿がある場合はDeleteViewをチェックインしますか? django

if request.method == 'GET': 

しかし、DeleteViewでは私はそのことを行うことができないので、ユーザーが自分で入力したURLで悪いことをしないようにする方法はわかりません。 一般的なビューで同じことをする関数を使用して、ユーザーが単独でURLを入力するかフォームに記入するかどうかを確認できますか?

答えて

0

デフォルトでは、​​は、POSTリクエストでのみ削除されます。あなたのユーザーはGETリクエストを作成するだけでアイテムを削除することはできません。

しかし、あなたの情報のために、すべてのクラスベースのビュー(CBV)をrequest.methodに応じて、エーテルpostまたはgetを呼び出すdispatchメソッドを呼び出します。

あなたはdispatch方法で直接、いくつかのロジックを追加したり、getを変更し、あなたのチェックを行うことができますが

class MyDeleteView(DeleteView): 
    def post(self, request, *args, **kwargs): 
     ... 

    def get(self, request, *args, **kwargs): 
     # here you can make redirect to any url 
     ... 
+0

これは単なる問題です。その404ページに私を送ります。私はそれをしたくない!リクエストが –

+0

@ascsacを取得したかどうかを確認して、インデックスに私を届けたいと思っています。 –

+0

わかりました!ありがとう:) –

1

これは、POSTである必要があり、それをチェックする必要はありませんあなた自身。リクエストメソッドがPOSTである場合docs

指定されたオブジェクトから

のみ削除されます。このビューをGET経由で取得すると、同じURLにPOSTするフォームを含む確認ページが表示されます。

関連する問題