Djangoメモ(7) : 管理者ユーザを作成して管理サイトを使う
A Complete Beginner's Guide to Djangoのチュートリアルを参考に管理サイトを使ってみる。
管理者ユーザを作成
最初に管理サイトにログインできる管理者ユーザをcreatesuperuser
で作成する。
パスワードは短かったり、一般的だと以下のように拒否されるので注意。
$ python manage.py createsuperuser Username (leave blank to use 'vagrant'): admin Email address: admin@example.com Password: Password (again): The password is too similar to the email address. This password is too short. It must contain at least 8 characters. This password is too common. Password: Password (again): Superuser created successfully.
日本語化
開発用サーバを起動してadmin/
(例:http://127.0.0.1:8000/admin/
)にアクセスする。
ここで先ほど登録したUsernameとPasswordを入力するが表示が英語になっているので日本語にする。
settings.py
のLANGUAGE_CODE
をja
に変更。ついでにTIME_ZONE
もAsia/Tokyo
に変更しておく(デフォルトで有効になっているUSE_I18N
などはそのままにしておく)。
# LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'ja' # TIME_ZONE = 'UTC' TIME_ZONE = 'Asia/Tokyo' USE_I18N = True USE_L10N = True USE_TZ = True
これで表示が日本語になる。なおドキュメントでは下記説明があるので場合によっては変更は不要かも。
translation がデフォルトで on になっているため、ログインスクリーンはあなたの言語で表示されるかもしれません。これは、あなたのブラウザの設定と、 Django がその言語に翻訳されているかどうかによります。
LANGUAGE_CODE
とTIME_ZONE
の一覧は以下のように確認できる。
>>> from django.conf import settings >>> settings.LANGUAGES [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ast', 'Asturian'), ... , ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')]
>>> import pytz >>> pytz.all_timezones ['Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', ... , 'W-SU', 'WET', 'Zulu']
モデルを追加
ログインが成功すると図のような画面に遷移する。
デフォルトでUsers(ユーザー)とGroups(グループ)は有効になっているが、自分で作成したBoardモデルがないのでboards/admin.py
を編集する。
変更前
from django.contrib import admin # Register your models here.
変更後
from django.contrib import admin from .models import Board admin.site.register(Board)
これでBoardモデルが有効になる。
管理サイトの操作
管理サイトの操作は見たままでBoards
をクリックすると現在登録されているBoardが表示される。
右上のBOARDを追加
をクリックすると登録画面に遷移するので項目を入力。
その後、保存
をクリックすると新規Boardが登録される。
管理サイトでは新規登録だけでなく編集も可能。
入力フォームは自動的に生成されるので、例えば同様な方法でPostモデルを追加すると図のような表示になる。
まとめ
createsuperuser
で管理者ユーザを作成admin/
で管理サイトにアクセス- 日本語化は
settings.py
のLANGUAGE_CODE
をja
に変更 - 管理サイトへのBoardモデルの追加は
boards/admin.py
を編集