4

私の Django アプリには、アイテムのリストがあり、それぞれの横に「削除」オプションがあります。ユーザーが「削除」ボタンをクリックできるようにして、$.post を Django ビューに送信して、そのインスタンスを削除できるようにします。このインスタンスを正常に削除したら、javascript で別の Ajax リクエストをトリガーして、削除されたインスタンスなしでリストを再描画します。

私の質問: $.post に実際に値を返さない場合、この操作を行うために ajax を使用する必要がありますか? Ajax は特に情報を取得するためのものですか? また、実際には何も返さなくても、Django ビューは HttpResponse を返す必要がありますか?

「削除」リクエストやビューなどを処理する適切な方法は何ですか?

ありがとう。

4

1 に答える 1

4

Djangoビューは、常にHttpResponseオブジェクトまたはそのサブクラスの1つを返す必要があります。他のものを返してみて、Djangoがどのように反応するかを確認してください(500エラーが発生するはずです)。

説明した状況では、jQueryの$.postメソッドを使用できます。その場合は、削除が成功したかエラーかを示す文字列を必ず返す必要があります。エラーを考慮しないと、サーバー上のアイテムを実際に削除せずに、ユーザーが表示しているページから何かを削除してしまう可能性があります。これにより、ユーザーに不整合や混乱が生じる可能性があります。

UIには、削除されるオブジェクトの特定の状態が必要です。つまり、ユーザーは削除を押しましたが、サーバーはまだ応答していません*。次に、エラーが発生した場合( success関数でエラーを示す文字列を受け取るか、エラー関数が呼び出されます。$。postに関するjQueryドキュメントを参照してください)、ユーザーに報告して、アイテムを通常の状態に戻すことができます。州。削除が成功した場合は、ページからアイテムを削除することができます(または、削除されたときに意図したことを実行します)。

*(アイテムが削除されていることを示す良い指標は、不透明度を下げて(少し透けて見えるようにする)、小さなスピニングホイールまたは削除が「進行中」であることを示す別のインジケーターを追加することです。)

于 2012-05-01T02:20:24.507 に答える