スポンサーリンク

【Django】models.pyでモデル(DBのテーブル)を作成する

スポンサーリンク
スポンサーリンク
この記事は約3分で読めます。

ブログモデルの作成

前回の記事で、アプリケーションディレクトリ(Blog_app)にtemplatesディレクトリを作成し、そのパスを通してDjangoに認識させた。

 

今回はmodels.pyでモデルを作成する手順についてまとめる。

モデルはデータベースにおけるテーブルに対応する。

モデルにはフィールドをもたせることができる。

フィールドはデータベースにおける各項目(カラム)に対応する。

 

今回はブログアプリを作成するので、まずはブログモデルを作成する。

モデル名(テーブル名)はブログとして、

データベースのテーブルにすると以下のようなイメージになる。

ブログモデルのイメージ(テーブル)

 

 

このテーブルはID、タイトル、内容、作成日の4つの項目(カラム)を持つ。この5項目にはデータの型や空欄の許可など設定が必要なので、models.pyで作成していく。

 

現在のディレクトリ構成は以下の通り。

■ディレクトリ構成

 

Djangoのモデルの各フィールドと各フィールドのオプション一覧は以下にまとめている。

【Django】モデルのフィールド一覧

【Django】モデルのフィールドオプション一覧

 

前回:【Django】アプリケーション内にurls.pyとtemplatesディレクトリを作りパスを通す

 

models.pyでモデルを定義してDBのテーブルを作成する手順

~デスクトップ/Blog/Blog_app/models.py

 

IDは明示的に指定しない場合は自動で作成されるため、ここでは省略。

※明示的に指定することもできる。

titleはブログ記事のタイトルで、CharaFieldで最大長を100文字、管理者サイトの詳細画面での表示を「タイトル」とした。

contentはブログ記事の内容で、TextFieldで多量の文章を扱えるようにし、管理者サイトの詳細画面での表示を「内容」とした。

titleはブログ記事のタイトルで、DateFieldで新規作成時のみ現在の日付をセットする。また管理者サイトの詳細画面での表示を「作成日時」とした。

 

verbose_nameは管理者サイトでの詳細画面を開いた際に、各項目をどのように表示するのかを指定するためのオプション。

何も指定しない場合は、title, content, created_dateなどフィールド名が使われる。

オプションで指定することで日本語で表示できる。

 

 

 

現在のディレクトリ構成は以下の通り。(変更なし)

■ディレクトリ構成

 

 

Django記事一覧

前回:【Django】アプリケーション内にurls.pyとtemplatesディレクトリを作りパスを通す

次回:【Django】作成したモデルをマイグレーションしてデータベースに反映する

Django記事一覧

 

参考

【Django】モデルのフィールド一覧

【Django】モデルのフィールドオプション一覧

コメント