.. _faq-usage: .. FAQ: Using Django FAQ: Django を使う ==================== :revision-up-to: 8961 (1.0) .. _Why do I get an error about importing DJANGO_SETTINGS_MODULE?: なぜ、 DJANGO_SETTINGS_MODULE を import できないというエラーが出るのですか? ---------------------------------------------------------------------------- 以下の点を確認してください: * 環境変数 DJANGO_SETTINGS_MODULE が完全指定の Python モジュール名になっ ていますか (たとえば "mysite.settings")。 * 設定モジュールは ``sys.path`` の上にありますか (``import mysite.settings`` はうまくいきますか)。 * (言うまでもなく) モジュールに構文エラーはありませんか。 * mod_python を使っていて、Django リクエストハンドラは *使っていない* のなら、 ``SetEnv`` に関わる mod_python のバグを回避する必要がありま す。 Django から何らかのモジュールを import する前に、以下のコードを 実行してください:: os.environ.update(req.subprocess_env) (``req`` は mod_python のリクエストオブジェクトです)。 .. _I can't stand your template language. Do I have to use it?: テンプレート言語を好きになれません。どうしても使わないとだめですか? -------------------------------------------------------------------- 私達はこのテンプレートエンジンを chunky bacon 以来の傑作だと思っているんで すが、テンプレート言語の選択というものは宗教に近いものがあるということは認 識しています。 Django では、テンプレート言語に対する制限はなんらありません。 ですから、 ZPT や Cheetah などを使いたいのなら、それは自由です。 .. _Do I have to use your model/database layer?: 付属のモデル/データベースレイヤを使わねばならないのですか? ------------------------------------------------------------ いいえ、テンプレートシステムと同様、モデル/データベースレイヤはフレームワー クの他の部分と脱カップリングしています。 唯一の例外: 別のデータベースライブラリを使った場合には、 Django の自動生成 admin サイトを利用できなくなります。 admin だけは Django のデータベースレイ ヤとカップリングしています。 .. _How do I use image and file fields?: 画像やファイルのフィールドはどう使うのですか? ----------------------------------------------- モデルで :class:`~django.db.models.FileField` や :class:`~django.db.models.ImageField` を使うには、いくつかのステップを踏む 必要があります: #. 設定ファイル内で :setting:`MEDIA_ROOT` を指定します。この値は、 Django がアップロードされたファイルを置く場所にします (パフォーマン ス上の理由から、ファイルをデータベースに置くことはありません)。 :setting:`MEDIA_URL` をそのディレクトリの公開 URL にします。ディレク トリは Web サーバのユーザアカウントに対して書き込み可能にしておかね ばなりません。 #. モデルに :class:`~django.db.models.FileField` や :class:`~django.db.models.ImageField` を追加し、 :attr:`~django.db.models.FileField.upload_to` オプションを定義して、 :setting:`MEDIA_ROOT` のどのサブディレクトリにファイルをアップロード させるのかを Django に教えます。 #. データベースにい保存されるのは、ファイルの (:setting:`MEDIA_ROOT` か らの相対で表した) パスだけです。 Django の提供している属性 :attr:`~django.core.files.File.url` を使うことになるでしょう。例えば、 ``mug_shot`` という名前の :class:`~django.db.models.ImageField` があ るとすると、テンプレートで画像の URL を指定するには ``{{ object.mug_shot.url }}`` のようにします。