libro
www.tuyano.com
初心者のためのDjango 2.0入門

CRUDをマスターしよう (6/6)

作成:2018-01-21 09:34
更新:2018-01-21 09:34

■削除(Delete)の処理について

残るは、Delete(削除)処理ですね。この削除も、やはり更新と同様、「どのレコードを削除するか」を指定しなければいけません。これも、先ほどのupdateと同様、URLからIDの値を受け渡せるようにしましょう。

hello/urls.pyurlpatterns内に、以下の文を追記して下さい。
path('delete/<int:id>', views.delete, name='delete'),
これで、/delete/番号 というアドレスにアクセスすると、view.pydelete関数が実行されるようになりました。

では、view.pydelete関数を追加しましょう。下のリスト欄のように記述をして下さい。

今回は、だいぶ処理は簡単になりました。delete関数そのものは非常に簡単です。まず以下のような形で関数を定義します。
def delete(request, id):
'delete/<int:id>' で渡されたidの値が、そのままdelete関数のidに渡されるようになります。このidの値をもとに、Personインスタンスを作成し、削除をします。
current = Person.objects.get(id=id)
current.delete()
削除は、「delete」というメソッドを使います。このメソッドを呼び出すと、そのインスタンスで設定されているレコードが削除されます。これも非常に簡単ですね。ただし! deleteで削除すると、もう元には戻せませんから、よくよく注意をして下さい。誤って違うレコードを削除することがないように!

では、実際にWebブラウザから、 /hello/delete/番号 というようにアクセスをしてみて下さい。これで、指定した番号のレコードが削除されるようになりますよ!

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

def delete(request, id):
    current = Person.objects.get(id=id)
    current.delete()
    return redirect('index')
※関連コンテンツ

「初心者のためのDjango 2.0入門」に戻る