なんだか前回はちょっと手こずりましたが、ようやくadmin画面を表示できるようになりました。
なお、最新版のドキュメントを教えていただけたので今回からはそちらを参照してやっていこうと思います。
http://docs.djangoproject.jp/en/latest/intro/tutorial01.html
adminページ内に自分のアプリケーションを含ませる
デフォルトのままでadminページにログインすると”Auth”という項目があってその中に”Groups”と”Users”がある。
ここに自分のアプリケーションPollsを表示させて管理画面から編集できるようにするためには、pollsディレクトリにあるadmin.pyを編集する。
admin.py
from django.contrib import admin
from polls.models import Poll # インポートして
admin.site.register(Poll) # admin画面に登録
これで追加される。追加・編集・削除も可能。
ためしにここからQuestionを追加してみた。DateとTimeはTodayとNowのショートカットを使用。
すると、現在日時はちゃんと合っている(秒数までは確認しないが)。
ただ、なぜかHistoryの方は日時がおかしい
9時間マイナスされているから多分これは世界標準で考えた日時と思われるのだけれど、だったら両方とも間違っているはずでは?
Poll追加時のTodayNowだけがちゃんと日本時刻にかみ合っているのが逆に不自然なような気がしてならない。
とはいえここは今のところさほど重要でないので、修正は後回しで。
adminフォームのカスタマイズ
フォームを並び替えるには
admin.py
class PollAdmin(admin.ModelAdmin):
fields = ['pub_date', 'question'] # fieldsはおそらく規定の変数名
# データベースに登録した項目名を配列に入れて指定
admin.site.register(Poll, PollAdmin)
# 一つめの引数でデータを取得し、二つ目の引数に基づいて作成?
フォームがたくさんある場合はfieldsetsで分割も出来るらしい
class PollAdmin(admin.ModelAdmin):
fieldsets = [
# (“見出し”,{‘fields’:[“項目”,”項目”]})という書き方っぽい
(None,{'fields': ['question']}), # Noneは見出しなし
('Date information',{'fields': ['pub_date'],'classes': ['collapse']}),
# classesはHTMLクラスを指定。collapseは折りたたみ機能
]
ここでいうHTMLクラスというのは<div class=“collapse”>と同じなのだろうか?(だとしたらCSSも適用できるが)
あとページ内でJavascriptも使われているようなのだけれどJSファイルがどこにも見当たらないのはなぜだろう?