Djangoを使ってみてる その2
posted by jun-g at Sun, 23 Sep 2007 20:54 JST
チュートリアル通り進めた場合、チュートリアルその3のURLconf の脱カップリングで行った内容だけだとDjangoアプリケーションの切り離しは出来ない。何故ならviews.pyに
from mysite.polls.models import Poll
と書いてしまっているから。これだとmysite以外のプロジェクト内に移動した場合にコードの修正が発生してしまう。完全に切り離すには、
from polls.models import Poll
と書かなければならないと思う。チュートリアルその4まで見たけどこの事についてはどこにも触れられていないっぽい。誰でもすぐ気付くからかな?
ちなみに、Django付属の開発用サーバではimport文を上記のように書き換えてもそのまま動くけど、Apache+mod_python上ではPythonPath上にpolls.modelsが見つからない、というエラーになった。ドキュメントのmod_python で Django を動かすには、DjangoプロジェクトおよびDjangoアプリケーションそれぞれの親ディレクトリをPythonPathに含める必要がある、と書いてあった。なので例えば/home/jun-g以下にチュートリアル通りの以下のようなディレクトリ構成で配置した場合、
mysite | +-- polls
PythonPathには以下のように書く必要がある。
PythonPath "['/home/jun-g', '/home/jun-g/mysite'] + sys.path"
っていうポイントにちょっとだけ引っかかった。
後、作成した自分用のアプリの入力フォーム生成とデータのバリデーションをnewformsを使うように修正した。泥臭いコードがかなり減ったけど、もうちょっと適切なWidgetを適用すればまだまだ整理できそうな感じ。そういえば、ドキュメントにoldformsの事は知らなくて良い、と書かれていたので、oldformsには一切触れず。
あ、generic viewsもmiddlewaresもまだ全然触っていない。これは次のアプリで使ってみることにしよう。後、動作環境をApache+mod_wsgi上に移す、とかもやりたい。