Dockerで構築したDjangoのデフォルトのadomin画面は以下のようになります。
デフォルトのadmin画面だと、ユーザー・グループの追加・編集のみしか機能がありません。
今回は、admin画面にブログ投稿用のエディタ機能を追加したのでまとめました。
Docker上のDjangoでadmin画面にブログ投稿機能を追加する手順
Dockerコンテナで構築したDjangoの設定手順は前回の記事を参考にしてください。
admin管理画面に機能を追加したい場合、作成したアプリ配下の以下のファイルを編集します。
- models.py
- admin.py
「models.py」は追加機能を作成し、「admin.py」はadmin画面に追加・表示します。
以下、順に設定をしていきます。
「models.py」でブログ投稿機能とカテゴリー機能を作成する
「models.py」でブログ投稿機能とカテゴリー機能を作成します。
models.pyを編集で開くと「Create your models here.」から下の行で追加のモデルを作成します。
$ vim myhp/models.py from django.db import models # Create your models here. class Category(models.Model): title = models.CharField('カテゴリー', max_length=10) def __str__(self): return self.title class Blog(models.Model): title = models.CharField('タイトル', max_length=60) text = models.TextField('テキスト') category = models.ForeignKey(Category, on_delete=models.PROTECT) created_at = models.DateField('作成日', auto_now_add=True) updated_at = models.DateField('更新日', auto_now=True) def __str__(self): return self.title
「models.py」で追加したモデルを作成
「models.py」で追加したモデルを作成するために「makemigrations」コマンドを実行します。
通常は、「python3 manage.py makemigrations myhp」で作成しますが、今回はDockerコンテナ上で動いているDjangoに対して実行するので「docker-compose run」コマンドを実行します。
※「web」は「docker-compose」のサービス名となります。
$ docker-compose run web python3 manage.py makemigrations myhp Starting postgres ... done Migrations for 'myhp': myhp/migrations/0005_blog_category.py - Create model Category - Create model Blog $
うまくいくと上記のようにモデルが作成されます。
「admin.py」でadmin管理画面に作成したモデルを追加
次に上記で作成したモデル「Category」と「blog」をadmin管理画面に追加します。
作成したアプリ配下の「admin.py」を編集で開き「# Register your models here.」の下の行を追加します。
$ cat myhp/admin.py from django.contrib import admin # Register your models here. from .models import Category, Blog admin.site.register(Category) admin.site.register(Blog)
データベースと同期するために「migrate」コマンドを実施
最後にadmin管理画面とデータベースを同期するために「migrate」コマンドを実行します。
こちらもDockerコンテナ上なので以下のコマンドを実行します。
$ docker-compose run web python3 manage.py migrate Starting postgres ... done Operations to perform: Apply all migrations: admin, auth, contenttypes, myhp, sessions Running migrations: Applying myhp.0005_blog_category... OK $
うまくいくと、最後に「OK」と表示されます。
admin画面を開くと追加したモデルが表示されます。
admin画面に追加機能を作成し、表示させる手順は以上となります。
Dockerを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す