Django でつまずいたことメモ
まだ django のチュートリアルがこなせていないが、とりあえず覚えているうちにつまずいた事をメモ。
試していた環境は CentOS 5.7 x86_64
● インストール
libjpeg-devel
zlib-devel
をインストールしないで、Python をビルドしていたため(と思われる)、
django-admin.py startproject mysite
が失敗する
下を参考にさせて貰いました
ServersMan@VPS Python 2.7 + Django 1.2.3 のインストール
http://temog.info/archives/programming/serversmanvps-python-2-7-django-1-2-3-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB.html
ありがとうございます
そのほかに Python の MySQL 用インタフェースを入れていなかったのでひっかかった
あわせてイストール
MySQL-python 1.1.10
http://pypi.python.org/pypi?:action=display&name=MySQL-python&version=1.1.10
● チュートリアル
どうも、チュートリアルがうまく行かないのは、日本語チュートリアルが django 1.0 ベースなのに、インストールしている django が 1.3 なのも影響があるみたい
そんなに変わってしまっているものなのか...?!
(追記)
Django 1.3 をインストールしながら、チュートリアルの日本語訳は Django 1.0 ベースだったので、そのまま日本語訳のチュートリアルをやったが、改めて 英語の方の Django 1.3 ベースのチュートリアルをやったら、大分違いがあった。
チュートリアルの part2/その2 で admin site/管理サイト を有効化するのだが手順の通りやるとエラーになってしまう。
しかし、下の手順を先にやるとエラーでなくなるようだ
https://docs.djangoproject.com/en/1.3/intro/tutorial02/#make-the-poll-app-modifiable-in-the-admin
(引用開始)
Make the poll app modifiable in the admin
But where's our poll app? It's not displayed on the admin index page.
Just one thing to do: We need to tell the admin that Poll objects have an admin interface. To do this, create a file called admin.py in your polls directory, and edit it to look like this:
from polls.models import Poll
from django.contrib import admin
admin.site.register(Poll)
You'll need to restart the development server to see your changes. Normally, the server auto-reloads code every time you modify a file, but the action of creating a new file doesn't trigger the auto-reloading logic.
(引用終了)
このあと、この手順で作った admin.py を削除してもエラーは起こらなくなる。ふしぎ。
ちなみに日本語 1.0 ベースのチュートリアルだと、mysite/polls/models.py を編集させる手順になっている
http://djangoproject.jp/doc/ja/1.0/intro/tutorial02.html#poll-admin
(引用開始)
Poll モデルを admin 上で編集できるようにする
ところで、 polls アプリケーションはどこにあるんでしょう? admin のインデ クスページを見ても表示されていませんね。
実は、まだ一つやるべきことが残っていました。 admin に Poll モデルがイ ンタフェースを持つことを教える必要があるのです。 mysite/polls/models.py ファイルを編集して、末尾に以下のような一文を加えてください:
from django.contrib import admin
admin.site.register(Poll)
admin のページをリロードして、どんな変化が起きたか見てみましょう。 開発サーバはプロジェクトを自動的にリロードしてくれるので、コードに加えた変 更はただちにブラウザで確認できます。
(引用終了)