revision-up-to: | 17812 (1.4) |
---|
以下の点を確認してください:
sys.path
の上にありますか
(import mysite.settings
はうまくいきますか)。mod_python を使っていて、Django リクエストハンドラは 使っていない
のなら、 SetEnv
に関わる mod_python のバグを回避する必要がありま
す。 Django から何らかのモジュールを import する前に、以下のコードを
実行してください:
os.environ.update(req.subprocess_env)
(req
は mod_python のリクエストオブジェクトです)。
私達はこのテンプレートエンジンをchunky bacon 以来の傑作だと思っているんで すが、テンプレート言語の選択というものは宗教に近いものがあるということは認 識しています。 Django では、テンプレート言語に対する制限はなんらありません。 ですから、 ZPT や Cheetah などを使いたいのなら、それは自由です。
いいえ、テンプレートシステムと同様、モデル/データベースレイヤはフレームワー クの他の部分と脱カップリングしています。
唯一の例外: 別のデータベースライブラリを使った場合には、 Django の自動生成 admin サイトを利用できなくなります。 admin だけは Django のデータベースレイ ヤとカップリングしています。
モデルで FileField
や
ImageField
を使うには、いくつかのステップを踏む
必要があります:
MEDIA_ROOT
を指定します。この値は、
Django がアップロードされたファイルを置く場所にします (パフォーマン
ス上の理由から、ファイルをデータベースに置くことはありません)。
MEDIA_URL
をそのディレクトリの公開 URL にします。ディレク
トリは Web サーバのユーザアカウントに対して書き込み可能にしておかね
ばなりません。FileField
や
ImageField
を追加し、
upload_to
オプションを定義して、
MEDIA_ROOT
のどのサブディレクトリにファイルをアップロード
させるのかを Django に教えます。MEDIA_ROOT
か
らの相対で表した) パスだけです。 URL を調べるには、 Django の提供し
ている属性 url
を使うことになるでしょ
う。例えば、 mug_shot
という名前の
ImageField
を作ったなら、テンプレートで画
像の URL を指定するには {{ object.mug_shot.url }}
と書きます。どのテンプレートでも同じデータを扱うことがたまにあります。よくあるのは、メ ニューを動的に生成して出す場合です。この手の例では、どのテンプレートでも使 データの入った辞書をテンプレートコンテキストに入れておくのが合理的ですね。
RequestContext
を使うのが正解です。詳しくは
コンテキストのサブクラス: RequestContext を参照してください。
Oct 26, 2017