Django でつまずいたことメモ

powered by Fotopedia


まだ 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

ありがとうございます


そのほかに PythonMySQL 用インタフェースを入れていなかったのでひっかかった
あわせてイストール

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 のページをリロードして、どんな変化が起きたか見てみましょう。 開発サーバはプロジェクトを自動的にリロードしてくれるので、コードに加えた変 更はただちにブラウザで確認できます。

(引用終了)