管理画面を作る
手順はものすごく簡単。
いよいよDjangoの真価を垣間見ることができる
mysite/settings.pyを開いて、INSTALLED_APPS内の
django.contrib.admin
のコメントアウトを外す
syncdbする
python manage.py syncdb
mysite/urls.pyを開いて、またコメントアウトを外していく
外すのは、以下の3行
from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),
サーバーを起動し
python manage.py runserver
ログインすると、グループとユーザー、サイトが追加できるっぽい。
これじゃ寂しすぎるが、モデルもCRUDできる。
polls/admin.py を作成する。
内容はこんな感じ
from polls.models import Poll, Choice
from django.contrib import admin
admin.site.register(Poll)
admin.site.register(Choice)
これが必要最小限。
サーバーを起動しなおして、再度ログインする。
(ファイルを追加した場合は、即時反映されないみたい)
これで管理画面からモデルを操作できる。
これだと余りにも簡素すぎるので、ちょっと手を加える
class PollAdmin(admin.ModelAdmin):
fields = ['pub_date', 'question']
list_display = ('question', 'pub_date', 'was_published_recently')
admin.site.register(Poll, PollAdmin)
こんな感じに変更すると、編集画面の順番をいじったり(fields)、一覧画面の表示内容をいじったり(list_display)できる。
さらに
class ChoiceInline(admin.TabularInline):
model = Choice
extra = 3
class PollAdmin(admin.ModelAdmin):
list_display = ('question', 'pub_date', 'was_published_recently')
fieldsets = [
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
(None, {'fields': ['question']}),
]
inlines = [ChoiceInline]
admin.site.register(Poll, PollAdmin)
Choiceのregisterを外して、Pollの編集画面からChoiceを設定できるように inlines を設定する。
さらにさらに
models.py を編集し
was_published_recently.admin_order_field = 'pub_date'
was_published_recently.boolean = True
was_published_recently.short_description = 'Published recently?'
を追加して、was_published_recently欄の表示の仕方を設定する。
これで管理画面を開くと、結構さまになってる感じになる。
簡単なブログ程度なら、あとはフロントを作れば完成する。
最終更新:2012年10月26日 21:52