FAQ:Djangoの使用
DJANGO_SETTINGS_MODULE のインポートでエラーが発生するのはなぜですか?
次のことを確認してください。
- 環境変数 DJANGO_SETTINGS_MODULE は、完全修飾Pythonモジュール(つまり、 「mysite.settings」)。
- 上記のモジュールは
sys.path
上にあります(import mysite.settings
は機能するはずです)。 - モジュールには構文エラーは含まれていません。
私はあなたのテンプレート言語に耐えられません。 使用する必要がありますか?
たまたま私たちのテンプレートエンジンは分厚いベーコン以来最高のものだと思いますが、テンプレート言語の選択は宗教に近いことを認識しています。 Djangoにはテンプレート言語を使用する必要があるものは何もないので、Jinja2やMakoなどに接続している場合は、それらを自由に使用してください。
モデル/データベースレイヤーを使用する必要がありますか?
いいえ。 テンプレートシステムと同様に、モデル/データベースレイヤーはフレームワークの残りの部分から分離されています。
唯一の例外は次のとおりです。別のデータベースライブラリを使用すると、Djangoの自動生成された管理サイトを使用できなくなります。 そのアプリはDjangoデータベースレイヤーに結合されています。
画像フィールドとファイルフィールドを使用するにはどうすればよいですか?
モデルで FileField または ImageField を使用するには、いくつかの手順を実行します。
- 設定ファイルで、:setting: `MEDIA_ROOT` を、アップロードされたファイルをDjangoに保存するディレクトリへのフルパスとして定義する必要があります。 (パフォーマンスのために、これらのファイルはデータベースに保存されません。):setting: `MEDIA_URL` をそのディレクトリのベースパブリックURLとして定義します。 このディレクトリがWebサーバーのユーザーアカウントによって書き込み可能であることを確認してください。
- FileField または ImageField をモデルに追加し、 upload_to オプションを定義して、使用する:setting: `MEDIA_ROOT` のサブディレクトリを指定しますアップロードされたファイルの場合。
- データベースに保存されるのは、ファイルへのパスだけです(:setting: `MEDIA_ROOT` に対して)。 Djangoが提供する便利な url 属性を使用することをお勧めします。 たとえば、 ImageField の名前が
mug_shot
の場合、テンプレート:Object.mug shot.url
を使用してテンプレート内の画像への絶対パスを取得できます。
すべてのテンプレートで変数を使用できるようにするにはどうすればよいですか?
テンプレートがすべて同じものを必要とする場合があります。 一般的な例は、動的に生成されたメニューです。 一見すると、共通の辞書をテンプレートコンテキストに追加するのが理にかなっているように見えます。
Djangoでこれを行う最良の方法は、RequestContext
を使用することです。 これを行う方法の詳細はここにあります: RequestContext の使用。