Python | Django | モデルフィールドリファレンスの使い方

2021年6月28日

公開日:2021/6/28

Pythonには,DjangoというWebアプリケーションフレームワークがある.フレームワークのため,Djangoを利用するとWebアプリを通常よりも短時間で開発することが可能になる.

前記事にて,「モデルにおけるマイグレーション操作」を記した.前記事での設定をそのまま引き継いだ上で,本記事では,「モデルフィールドリファレンスの使い方」を記す.

◆実施環境

Python 3.8.8
Django 3.2.3

■モデルフィールドリファレンスの使い方

“model_app/models.py"に2つのクラス(“Cake", “sales_amounts")があったが,"sales_amounts"クラスを削除し,"Cake"クラスに以下のモデルフィールドリファレンスを追記をした.

・CharField
・DateField
・IntegerField
・BooleanField
・EmailField
・URLField
・TextField

追記後,"models.py"は以下のように編集した.

from django.db import models

class Cake(models.Model):
  cake_name = models.CharField(max_length=40)
  birthplace = models.CharField(max_length=40)
  birthday = models.DateField(default='1900-01-01')
  inventor = models.CharField(max_length=40)
  sales_amounts = models.IntegerField()
  like = models.BooleanField(default=True)
  email = models.EmailField(db_index=True)
  web_site = models.URLField()
  feed_back = models.TextField(null=True,blank=True)

ターミナルを開き,”conda activate 仮想環境名”を実行し,仮想環境に移行する.”model_project”のディレクトリで”python manage.py makemigrations model_app –name add_cake”を実行する.実行するとターミナルに以下が出力される.

Migrations for 'model_app':
  model_app\migrations\0001_add_cake.py
    - Create model Cake

同時に"model_project/model_app/migrations"に"0001_add_cake.py"が作成される.

ターミナルの”model_project”のディレクトリで”python manage.py migrate model_app”を実行する.実行するとターミナルに以下が出力される.

Operations to perform:
  Apply all migrations: model_app
Running migrations:
  Applying model_app.0001_add_cake... OK

VS Codeの”View”をクリックし,以下”Command Palette”をクリックする.

“SQLite”を検索し,以下”SQLite: Open Database”を選ぶ.

その後,”db.sqlite3″を選ぶ.

“VS Code”に以下”SQLITE EXPLORER”が追加される.

”SQLITE EXPLORER”を開くと,"model_app_cake"が以下のように追加される.

“model_app/admin.py"を以下のように編集する.

from django.contrib import admin
from .models import Cake

admin.site.register(Cake)

“model_project/settings.py"の109行目付近のTIME_ZONEを"Asia/Tokyo"に変える.これにより,タイムゾーンを東京に変更することができる.もしも,管理画面の言語を日本語にしたい場合は,LANGUAGE_CODEを"en-us"から"ja"に変える.

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'Asia/Tokyo' # 変更箇所

USE_I18N = True

USE_L10N = True

USE_TZ = True

ターミナルの”model_project”のディレクトリで”python manage.py createsuperuser”を実行する.以下出力されるので,適当な名前,メールアドレス,パスワードを入力し,クリックする.

Username (leave blank to use '名前'):
Email address:
Password:
Password (again):

Superuser created successfully. # 上記入力後,出力される.

ターミナルの”model_project”のディレクトリで”python manage.py runserver”を実行すると以下が出力される.

System check identified no issues (0 silenced).
June 28, 2021 - 02:36:17
Django version 3.2.3, using settings 'model_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

“http://127.0.0.1:8000/”をクリックし,ブラウザを開くと以下のように表示される.

ブラウザのURLに”http://127.0.0.1:8000/admin”を入力し,ブラウザを開くと,以下が出力される.上記で設定した"Username"と"Password"を入力し,"Log in"をクリックする.

クリックすると,以下のように"Django Administration"に入ることができる.

上記の"Cakes"をクリックすると,以下ページに遷移する.赤枠の"ADD CAKE"をクリックする.

以下画面に遷移し,内容を入力することができる.

以下のように内容を入力し,"SAVE"をクリックする.

以下画面に遷移し,赤枠のように"Cake object"が無事に追加されたことが分かる.

VS Codeに戻り,”SQLITE EXPLORER”の"model_app_cake"を右クリックし,"show table"をクリックする.

クリックすると,上記で入力した内容がデータベースにも反映されていることが分かる.

以上