もた日記

くだらないことを真面目にやる

Djangoメモ(7) : 管理者ユーザを作成して管理サイトを使う

Python 3.6.4 Django 2.0.2

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/)にアクセスする。

f:id:wonder-wall:20180225215955p:plain

ここで先ほど登録したUsernameとPasswordを入力するが表示が英語になっているので日本語にする。
settings.pyLANGUAGE_CODEjaに変更。ついでにTIME_ZONEAsia/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 がその言語に翻訳されているかどうかによります。

f:id:wonder-wall:20180225220010p:plain

LANGUAGE_CODETIME_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']


モデルを追加

ログインが成功すると図のような画面に遷移する。

f:id:wonder-wall:20180225220119p:plain

デフォルトで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モデルが有効になる。

f:id:wonder-wall:20180225220952p:plain


管理サイトの操作

管理サイトの操作は見たままでBoardsをクリックすると現在登録されているBoardが表示される。

f:id:wonder-wall:20180225221005p:plain

右上のBOARDを追加をクリックすると登録画面に遷移するので項目を入力。

f:id:wonder-wall:20180225221017p:plain

その後、保存をクリックすると新規Boardが登録される。
管理サイトでは新規登録だけでなく編集も可能。

f:id:wonder-wall:20180225221030p:plain

入力フォームは自動的に生成されるので、例えば同様な方法でPostモデルを追加すると図のような表示になる。

f:id:wonder-wall:20180308100615p:plain

まとめ

  • createsuperuserで管理者ユーザを作成
  • admin/で管理サイトにアクセス
  • 日本語化はsettings.pyLANGUAGE_CODEjaに変更
  • 管理サイトへのBoardモデルの追加はboards/admin.pyを編集