0

インスタンスの削除を確認する単純なDjangoビューがあります。このページには、「キャンセル」と「削除」の2つのボタンを含む単純なフォームがあります。

[キャンセル]ボタンは、元の削除ボタンが押されたページにユーザーを戻すだけです。

[削除]ボタンは、実際のアクションを実行する2番目のビューにジャンプします。したがって、私のURLは次のように定義されます。

url(r'^confirmDeleteItem/(?P<item_key>\w+)$', 'confirm_delete_item'), # Confirms

url(r'^deleteItem/(?P<item_key>\w+)$', 'delete_item'), # Performs the action

確認ページでは、フォームは2番目のURLにアクセスするPOSTアクションで定義されています。

<form action="/squash/deleteItem/{{ item.key }}/" method="POST">
...
</form>

私がこれに関して抱えている問題は、アイテムがかなり大きく(大量のデータを格納している)、機密性が高いことです。そのため、ユーザーに毎回確認フープをジャンプさせたいと思います。

/deleteItem/ユーザーがページに手動でアクセスできないようにするか、ブラウザによるこのページの読み込みを非表示にして、履歴に保存されたり、誤ってブックマークされたりしないようにします。

アクションをAJAX呼び出しでラップすることは、この問題を解決するための最良の方法ですか、それともより標準的/推奨される解決策がありますか?ありがとう!

4

2 に答える 2

3

confirmDeleteItemビュー(つまり、prepareToDelete = item.key)でセッション変数を設定し、deleteItemビューでこのセッション変数が存在するかどうか、および値がitem.keyと一致するかどうかを確認するのはどうですか?次に、実際の削除が発生した後で削除する必要があります。

于 2012-04-17T17:37:32.337 に答える
1

私にはよくわかりませんが、あなたの場合にはうまくいくはずです。

ビューでリファラーを確認しますdeleteItemこのコード スニペットのように。ユーザーがビューから削除ビューに来なかった場合はconfirmDelete、適切なビューにリダイレクトしconfirmDeleteます。

于 2012-04-17T17:34:33.397 に答える