管理画面の基本設定
Djangoプロジェクトの初期構築時に、管理画面用のルーティングは既に準備されています。必要に応じてurls.pyに以下の設定を追加してください。
# urls.py ファイル
from django.urls import path
from django.contrib import admin
urlpatterns = [
path('management/', admin.site.urls),
]
サーバー起動後、ブラウザでhttp://127.0.0.1:8000/management/にアクセスするとログイン画面が表示されます。
管理者アカウントの作成
管理画面にアクセスするためのスーパーユーザーを作成するには、プロジェクトディレクトリで以下のコマンドを実行します。
python manage.py createsuperuser
プロンプトが表示されたら、ユーザー名admin、メールadmin@example.com、パスワードsecurepassword123を入力してください。
モデルの管理画面登録
データベース操作を効率化するため、モデルを管理画面に登録します。アカウントアプリの例:
# account/admin.py
from django.contrib import admin
from account.models import Member
class MemberAdmin(admin.ModelAdmin):
display_fields = ['login_id', 'contact_email']
admin.site.register(Member, MemberAdmin)
同様にブログアプリのモデルも登録:
# blog/admin.py
from django.contrib import admin
from blog.models import Post
class PostAdmin(admin.ModelAdmin):
display_fields = ['post_id', 'title_text']
admin.site.register(Post, PostAdmin)
多言語対応と表示設定
管理画面を日本語表示するには、settings.pyで以下を設定:
# settings.py
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
アプリケーション名の日本語化:
# account/apps.py
from django.apps import AppConfig
class AccountConfig(AppConfig):
name = 'account'
verbose_name = '会員管理'
テーブル名の複数形制御
モデル定義で複数形を抑制:
class Member(models.Model):
class Meta:
db_table = 'member'
verbose_name = '会員'
verbose_name_plural = '会員'
関連データの表示カスタマイズ
記事管理画面で著者名を表示する方法:
def author_display(obj):
return obj.author.login_id
class PostAdmin(admin.ModelAdmin):
display_fields = ['post_id', author_display, 'title_text']
clickable_fields = ['post_id', 'title_text']
readonly_fields = ['post_id']
モデルに文字列表現を追加:
class Member(models.Model):
def __str__(self):
return self.login_id