CRUDをマスターしよう (6/6)
作成:2018-01-21 09:34
更新:2018-01-21 09:34
更新:2018-01-21 09:34
■削除(Delete)の処理について
残るは、Delete(削除)処理ですね。この削除も、やはり更新と同様、「どのレコードを削除するか」を指定しなければいけません。これも、先ほどのupdateと同様、URLからIDの値を受け渡せるようにしましょう。
hello/urls.pyのurlpatterns内に、以下の文を追記して下さい。
では、view.pyにdelete関数を追加しましょう。下のリスト欄のように記述をして下さい。
今回は、だいぶ処理は簡単になりました。delete関数そのものは非常に簡単です。まず以下のような形で関数を定義します。
では、実際にWebブラウザから、 /hello/delete/番号 というようにアクセスをしてみて下さい。これで、指定した番号のレコードが削除されるようになりますよ!
hello/urls.pyのurlpatterns内に、以下の文を追記して下さい。
path('delete/<int:id>', views.delete, name='delete'),これで、/delete/番号 というアドレスにアクセスすると、view.pyのdelete関数が実行されるようになりました。
では、view.pyにdelete関数を追加しましょう。下のリスト欄のように記述をして下さい。
今回は、だいぶ処理は簡単になりました。delete関数そのものは非常に簡単です。まず以下のような形で関数を定義します。
def delete(request, id):'delete/<int:id>' で渡されたidの値が、そのままdelete関数のidに渡されるようになります。このidの値をもとに、Personインスタンスを作成し、削除をします。
current = Person.objects.get(id=id)削除は、「delete」というメソッドを使います。このメソッドを呼び出すと、そのインスタンスで設定されているレコードが削除されます。これも非常に簡単ですね。ただし! deleteで削除すると、もう元には戻せませんから、よくよく注意をして下さい。誤って違うレコードを削除することがないように!
current.delete()
では、実際にWebブラウザから、 /hello/delete/番号 というようにアクセスをしてみて下さい。これで、指定した番号のレコードが削除されるようになりますよ!
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
def delete(request, id): current = Person.objects.get(id=id) current.delete() return redirect('index')
※関連コンテンツ