Django の管理サイトを使えるようにする
次は Writing your first Django app, part 2 に進む。
Activate the admin site
まずは settings.py の INSTALLED_APPS で admin のコメントを外す。
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', # Uncomment the next line to enable the admin: 'django.contrib.admin', # Uncomment the next line to enable admin documentation: # 'django.contrib.admindocs', 'polls', )
次に manage.py syncdb する。
(venv)[paraches@praches.com myHeroku]$ python manage.py syncdb
fitsync/urls.py の admin の部分を Uncomment する。
こんな感じになる。
(venv)[paraches@praches.com myHeroku]$ cat fitsync/urls.py from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', # Examples: # url(r'^$', 'fitsync.views.home', name='home'), # url(r'^fitsync/', include('fitsync.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation: # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: url(r'^admin/', include(admin.site.urls)), ) (venv)[paraches@praches.com myHeroku]$
Django を起動して http://localhost:5000/admin/ にアクセスして確認。
(venv)[paraches@praches.com myHeroku]$ foreman start 00:24:44 web.1 | started with pid 26337 00:24:44 web.1 | 2013-05-06 00:24:44 [26337] [INFO] Starting gunicorn 0.17.4 00:24:44 web.1 | 2013-05-06 00:24:44 [26337] [INFO] Listening at: http://0.0.0.0:5000 (26337) 00:24:44 web.1 | 2013-05-06 00:24:44 [26337] [INFO] Using worker: sync 00:24:44 web.1 | 2013-05-06 00:24:44 [26344] [INFO] Booting worker with pid: 26344
管理者ページは表示されたけど css へのパスが通ってない…。
とりあえず css は置いておいて、次は commit して push してみる。
ここの最後の方に変更の反映方法が書いてあった。
(venv)[paraches@praches.com myHeroku]$ git add . (venv)[paraches@praches.com myHeroku]$ git commit -m "Add polls application" (venv)[paraches@praches.com myHeroku]$ git push heroku master
push は問題なく終了。
で、Mac の Safari から Herokuのサーバにアクセスしてみると、ちゃんと Django 管理サイトのログイン画面が表示された!(けど、もちろん css は読み込めてない…)
サーバの Django 管理サイトへのログインだけど、これは heroku run python manage.py syncdb した時に設定したユーザ名とパスワードを使用する。(上の例では U7623 がユーザ名。)
これもちゃんと Heroku サーバ上でログインできた!
次に管理画面から polls のデータにアクセスしてみたのだけど…エラーになる。
DatabaseError at /admin/polls/poll/add/ relation "polls_poll" does not exist LINE 1: INSERT INTO "polls_poll" ("question", "pub_date") VALUES ('H... ^ … Exception Type: DatabaseError Exception Value: relation "polls_poll" does not exist …
ただし、これは Heroku 上ではまだ syncdb してなかったというチョンボ。
というわけで、heroku run してみた。
(venv)[paraches@praches.com myHeroku]$ heroku run python manage.py syncdb
問題なくできたので、再度トライしたらちゃんと polls のデータにアクセスできました。