# Django 4.1.8.dev20230308103347 ドキュメント

# FAQ: Django を使う

## Why do I get an error about importing `DJANGO_SETTINGS_MODULE`?

以下の点を確認してください:

- The environment variable `DJANGO_SETTINGS_MODULE` is set to a fully-qualified Python module (i.e. `mysite.settings`).
- その設定モジュールは `sys.path` の上にありますか (`import mysite.settings` はうまくいきますか)。
- モジュールに構文エラーはありません。

## テンプレート言語を好きになれません。どうしても使わないとだめですか？

私たちはこのテンプレートエンジンを chunky bacon 以来の傑作だと思っているのですが、テンプレート言語の選択というものは宗教に近いものがあるということは認識しています。Django では、テンプレート言語に対する制限はなにもありません。ですから、Jinja2 や Mako などを使いたいのなら、それは自由です。

## 付属のモデル／データベースレイヤを使わねばならないのですか？

いいえ、テンプレートシステムと同様、モデル／データベースレイヤはフレームワー クの他の部分と疎結合しています。

唯一の例外: 別のデータベースライブラリを使った場合には、 Django の自動生成管理サイトを利用できなくなります。 admin だけは Django のデータベースレイヤと密結合しています。

## 画像やファイルのフィールドはどう使うのですか？

モデルで `FileField` や `ImageField` を使うには、いくつかのステップを踏む必要があります:

1. In your settings file, you'll need to define `MEDIA_ROOT` as the full path to a directory where you'd like Django to store uploaded files. (For performance, these files are not stored in the database.) Define `MEDIA_URL` as the base public URL of that directory. Make sure that this directory is writable by the web server's user account.
2. モデルに `FileField` や `ImageField` を追加し、 `upload_to` オプションを定義して、 `MEDIA_ROOT` のどのサブディレクトリにファイルをアップロードさせるのかを Django に教えます。
3. データベースに保存されるのは、ファイルの (`MEDIA_ROOT` からの相対で表した) パスだけです。 URL を調べるには、 Django の提供し ている属性 `url` を使うことになるでしょう。例えば、 `mug_shot` という名前の `ImageField` を作ったなら、テンプレートで画像の URL を指定するには `{{ object.mug_shot.url }}` と書きます。

## どうやったら、全てのテンプレートで使える変数を定義できますか？

どのテンプレートでも同じデータを扱うことがたまにあります。よくある例は、動的生成のメニューです。一見、共通のディクショナリをテンプレートコンテキストに入れておくのが合理的に見えます。

Django では、`RequestContext` を使うのが一番の方法です。詳しくはコンテキストのサブクラス RequestContext を使う を参照してください。