2012-05-01 6 views
2

私のDjangoアプリには、それぞれの隣に「削除」オプションがある項目のリストがあります。私は、ユーザーが '削除'ボタンをクリックできるようにし、Djangoビューに$ .postを送信して、そのインスタンスを削除するようにします。このインスタンスを正常に削除すると、Javascriptで別のAjaxリクエストがトリガーされ、削除されたインスタンスを除いたリストが再描画されます。Django&Ajax - 返信文なしの表示

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

「削除」リクエストとビューのようなものを処理する適切な方法は何ですか?

ありがとうございました。

答えて

2

Djangoビューは常にHttpResponseオブジェクトを返さなければならず、その1つはsubclassesです。 Djangoがどのように反応するかを確認してください(500エラーが発生するはずです)。

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

あなたのUIは、削除されているオブジェクトの特定の状態、つまりユーザーが削除を押したが、サーバーがまだ応答していない*。次に、エラーがある場合(成功のエラーを示す文字列を受信するか、またはエラー関数が呼び出された場合は、jQuery docs about $.postを参照してください)、ユーザーに報告してアイテムを通常の状態に戻すことができます。削除が成功した場合は、そのページからアイテムを削除することができます(または削除されたときに行うことを意図した操作を行うことができます)。

*(削除されるアイテムの良い指標は、不透明度を減らす(透けて見えるようにする)ことができ、少しの回転ホイールや削除中の他のインジケータを「処理中」に追加することができます)

+0

意味がある、Baldur。ありがとう。 – bento

関連する問題