概要
管理者ログインページ
Djangoのデフォルトの状態で、既に管理者の環境が準備されている。サーバーを起動してadmin/
サブディレクトリーでアクセスすると、以下のような管理者ログイン画面が表示される。
管理者の作成
createsuperuser
コマンドで管理者を作成する。
1 |
$ ./manage.py createsuperuser |
管理者のユーザー名、メールアドレス、パスワードを登録し、管理者アカウント作成。プロンプトの一部が日本語になっている。
1 2 3 4 5 6 7 8 |
(django32) mysite:$ ./manage.py createsuperuser ユーザー名 (leave blank to use 'vagrant'): admin メールアドレス: admin@mail.com Password: Password (again): このパスワードは ユーザー名 と似すぎています。 Bypass password validation and create user anyway? [y/N]: y Superuser created successfully. |
パスワードを'admin'
という文字列を含むかなり簡単なものにしたため「ユーザー名と似すぎています」という警告が出たが、ここはyesにしておいた。
管理者ログイン・インデックスページ表示
作成した管理者アカウントでログインすると管理者インデックスページへ。この段階では、polls
アプリケーションが管理者で操作できるようにはなっていない。
管理者へのアプリケーションの登録
管理者がpolls
アプリケーションを操作できるようにするために、polls/admin.py
に記述を追加する。
Qustion
モデルのインポートadmin
サイトにQuestion
モデルを登録
admin.py
がpolls
パッケージ内にあるのでfrom .models ...
としているが、from polls.models ...
でもよい。
1 2 3 4 |
from django.contrib import admin from .models import Question admin.site.register(Question) |
インデックスページを再表示させると、今度はQuestionsが見られるようになった。
データの内容表示
インデックスページのQustions
をクリックすると、登録済みデータが表示される。What’s up?と表示されているのは、models.py
のQuestion
クラスで__str__
メソッドを定義したおかげで、デフォルトの状態だとQuestion object (1)と表示される。
What’s upをクリックすると、フィールド内容の編集画面に移る。
フィールド名のQustion textとDate publishedは、models.py
のQuestion
クラスで定義したフィールド名になっている。
- Question textは、クラス定義のプロパティー
question_text
のアンダースコアがスペースに、先頭が大文字に変換されたもの - Date publishedは
DateTimeField
の引数に指定した'date published'
の先頭が大文字に変換されたもの
1 2 3 4 5 |
class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') .... |
たとえば上記の3行目をDateTimeField()
とすると、画面表示は元のプロパティー名に即してPub dateとなる。
データの編集
Qustion textとDate publishedの内容を変更して「保存して編集を続ける」ボタンを押すと、変更した内容が反映される。
もちろんデータベース上でも変更されている。
1 2 3 4 5 6 7 |
mysql> select* from questions; +----+---------------+----------------------------+ | id | question_text | pub_date | +----+---------------+----------------------------+ | 1 | What's up?? | 2022-03-20 09:36:26.000000 | +----+---------------+----------------------------+ 1 row in set (0.00 sec) |
変更履歴
画面右上の「履歴」ボタンを押すと変更履歴画面に移り、Question textとDate publishedが変更された履歴が表示される。