LoginSignup
2
3

More than 5 years have passed since last update.

DJangoメモ:はじめから(管理画面を編集編)  謎あり

Last updated at Posted at 2013-12-11

なんだか前回はちょっと手こずりましたが、ようやく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ファイルがどこにも見当たらないのはなぜだろう?

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3