カテゴリ: Django 更新日: 2026/03/30

Djangoモデルメソッドの基本|save・delete・__str__の使い方を初心者向けに徹底解説

Djangoモデルメソッドの基本|save・delete・__str__ の使い方
Djangoモデルメソッドの基本|save・delete・__str__ の使い方

先生と生徒の会話形式で理解しよう

生徒

「Djangoのモデルって、データを保存するって聞いたんですけど、どうやって保存したり消したりするんですか?」

先生

「Djangoのモデルには、最初から用意されている便利なメソッドがあります。savedeleteを使うと、データベースへの保存や削除がとても簡単にできます。」

生徒

「あと、管理画面で表示される文字が分かりにくいんですが、それも変えられるんですか?」

先生

「それは__str__メソッドで解決できます。順番に見ていきましょう。」

1. Djangoモデルとモデルメソッドとは?

1. Djangoモデルとモデルメソッドとは?
1. Djangoモデルとモデルメソッドとは?

Djangoのモデルとは、データベースの表をPythonのクラスとして表現したものです。表の1行が1つのデータ、つまりレコードになります。モデルメソッドとは、そのモデルに対して行う操作をまとめた機能です。

難しく感じるかもしれませんが、モデルは「データを入れる箱」、モデルメソッドは「箱を操作するためのボタン」だと考えるとイメージしやすくなります。

2. saveメソッドの役割と基本的な使い方

2. saveメソッドの役割と基本的な使い方
2. saveメソッドの役割と基本的な使い方

saveメソッドは、モデルのデータをデータベースに保存するための命令です。新しいデータを登録するときも、既存データを変更するときも同じsaveを使います。


from blog.models import Article

article = Article(title="はじめてのDjango", body="モデルの基本を学びます")
article.save()

このコードでは、記事データを作成し、saveを呼び出すことでデータベースに保存しています。保存ボタンを押す感覚に近いです。

3. saveメソッドで更新する仕組み

3. saveメソッドで更新する仕組み
3. saveメソッドで更新する仕組み

saveは新規登録だけでなく、更新にも使われます。すでに存在するデータを取得して内容を変更し、再びsaveを実行すると上書きされます。


article = Article.objects.get(id=1)
article.title = "タイトルを変更しました"
article.save()

このように、データを取り出して書き換えて保存するだけで、データベースの内容も一緒に更新されます。

4. deleteメソッドでデータを削除する

4. deleteメソッドでデータを削除する
4. deleteメソッドでデータを削除する

deleteメソッドは、不要になったデータを削除するときに使います。ゴミ箱に捨てる操作と同じイメージです。一度削除すると元には戻せないので注意が必要です。


article = Article.objects.get(id=1)
article.delete()

このコードを実行すると、指定した記事データがデータベースから完全に削除されます。

5. __str__メソッドとは何か?

5. __str__メソッドとは何か?
5. __str__メソッドとは何か?

__str__メソッドは、そのデータを文字として表示するときの内容を決める特別なメソッドです。Django管理画面やデバッグ時に、とても重要な役割を持ちます。

設定していない場合は「Article object (1)」のような分かりにくい表示になります。


class Article(models.Model):
    title = models.CharField(max_length=100)

    def __str__(self):
        return self.title

6. __str__を設定するメリット

6. __str__を設定するメリット
6. __str__を設定するメリット

__str__を設定すると、管理画面やログで内容が一目で分かるようになります。特に初心者のうちは、どのデータを扱っているのか迷いやすいため、必ず設定する習慣をつけましょう。

これは、箱に中身の名前を書いておくラベルのようなものです。

7. モデルメソッドを使うと何が楽になるのか

7. モデルメソッドを使うと何が楽になるのか
7. モデルメソッドを使うと何が楽になるのか

Djangoのモデルメソッドを使うことで、SQLという難しいデータベース言語を直接書かなくても、安全で分かりやすい操作ができます。

saveやdelete、__str__は、Djangoモデルの中でも特によく使う基本中の基本です。ここを理解しておくと、今後のモデル学習がとても楽になります。

8. 初心者がつまずきやすい注意点

8. 初心者がつまずきやすい注意点
8. 初心者がつまずきやすい注意点

saveを書き忘れるとデータは保存されません。また、deleteは取り消しができないため、実行前に本当に削除してよいか確認する癖をつけましょう。

__str__はエラーの原因にはなりにくいですが、設定しておくことで開発効率が大きく向上します。

まとめ

まとめ
まとめ

ここまで、Djangoモデルメソッドの中でも特に重要なsaveメソッド、deleteメソッド、そして__str__メソッドについて、基礎から順番に学んできました。Djangoのモデルは、単なるデータの入れ物ではなく、データを安全かつ効率的に操作するための多くの仕組みが用意されています。その中心にあるのが、今回解説してきたモデルメソッドです。 saveメソッドは、新しいデータをデータベースに保存するときだけでなく、既存データを更新するときにも使える万能な存在でした。オブジェクトを作成してsaveを呼び出すだけで、複雑なデータベース処理を意識せずにデータを扱える点は、Djangoの大きな魅力です。初心者が最初につまずきやすい部分として、値を変更しただけでは保存されず、必ずsaveを実行する必要があることも確認しました。 deleteメソッドは、不要になったデータを削除するためのメソッドです。直感的に使える一方で、一度削除すると元に戻せないという特徴があります。そのため、開発中や本番環境では、どのデータを削除するのかを意識しながら慎重に扱う必要があります。モデルメソッドを理解することは、データベース操作の安全性を高める第一歩でもあります。 __str__メソッドは、直接データを保存したり削除したりするわけではありませんが、開発効率を大きく左右する重要な要素です。管理画面やデバッグ時に表示される文字列を分かりやすくすることで、今どのデータを扱っているのかを一目で把握できるようになります。特にDjango管理画面を使う場面では、__str__を設定しているかどうかで使いやすさが大きく変わります。 Djangoモデルメソッドを正しく理解して使えるようになると、データベース操作に対する不安が減り、アプリケーション開発そのものに集中できるようになります。save、delete、__str__はどれも基本的なメソッドですが、これらをしっかり身につけておくことで、今後より複雑なモデル設計やビジネスロジックにもスムーズに取り組めるようになります。

まとめとして確認したいサンプルプログラム

最後に、今回学んだ内容をまとめて確認できる、シンプルなDjangoモデルの例を見ておきましょう。save、delete、__str__がどのように関係しているかを意識しながら読むことで、理解がより深まります。


from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=100)
    body = models.TextField()

    def __str__(self):
        return self.title

このモデルでは、titleとbodyを持つ記事データを扱っています。__str__メソッドでタイトルを返すようにしているため、管理画面やシェル上でArticleオブジェクトを確認したときにも内容が分かりやすく表示されます。 実際にデータを保存する場合は、オブジェクトを作成してsaveを呼び出します。


article = Article(title="モデルメソッドの復習", body="saveとdeleteと__str__を学びました")
article.save()

不要になったデータは、取得してからdeleteを実行することで削除できます。これらの操作はすべて、Djangoが用意してくれているモデルメソッドによって実現されています。

先生と生徒の振り返り会話

生徒

「saveとdeleteって、思っていたよりもずっと簡単に使えるんですね。データベースを直接操作している感じがしなくて安心しました。」

先生

「それがDjangoの良いところです。モデルメソッドを使えば、安全な形でデータを扱えるので、初心者でも実装しやすいのです。」

生徒

「__str__を設定するだけで、管理画面がすごく見やすくなるのも驚きでした。今まで表示が分かりにくくて混乱していました。」

先生

「小さな設定ですが、開発を続けていくと大きな差になります。モデルを作ったら、まず__str__を書く習慣をつけると良いですよ。」

生徒

「これで、Djangoのモデルが少し身近に感じられました。次は、もっと複雑なモデルにも挑戦してみたいです。」

先生

「その意気です。今回学んだモデルメソッドの基礎が、これからのDjango開発を支えてくれます。」

カテゴリの一覧へ
新着記事
New1
Flask
Flask-WTFの使い方!フォームバリデーションを簡単にする拡張機能の導入手順
New2
Python
Pythonでリストの要素を一括で処理する方法を完全ガイド!初心者でもわかるmap関数とlambda式の使い方
New3
Django
Djangoモデルメソッドの基本|save・delete・__str__の使い方を初心者向けに徹底解説
New4
Flask
PythonのFlaskで日付・時間・通貨を多言語対応!ローカライズ完全ガイド
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Python
PythonでMongoDBを操作しよう!データの挿入・更新・削除を初心者向けに徹底解説
No.3
Java&Spring記事人気No3
Flask
FlaskアプリをVPSにデプロイする基本手順!初心者向けにまとめ
No.4
Java&Spring記事人気No4
Python
Pythonの変数宣言と型ヒントの使い方!初心者向けに基礎をやさしく解説
No.5
Java&Spring記事人気No5
Python
Pythonの真偽値(bool型)とは?TrueとFalseの基本と使い方をわかりやすく解説
No.6
Java&Spring記事人気No6
Python
Pythonでタプルの最大値・最小値を取得する方法!max()・min()の使い方
No.7
Java&Spring記事人気No7
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.8
Java&Spring記事人気No8
Python
Pythonのエラーハンドリング設計を完全解説!初心者でもわかる適切な例外キャッチ方法