Django オンラインドキュメント和訳 更新しました。 Revision 5370 (2007/05/28). 「URLディスパッチャ - ユーティリティメソッド 」「モデル API リファレンス - FileField 」「 mod_python 上で egg パッケージを使う 」「テンプレート - コメント 」の記述が更新されています。
以下、 diff -r 5302:5370 の主な変更分です。
例では, HttpResponseRedirect のコンストラクタの中で reverse() という関数を使っています.この関数を使うと,ビュー関数 中での URL のハードコードを防げます. reverse() にはビューの名前を 渡し,同時に URL パターンからビューにマップするときに取り出される変数 を指定します.上の例では, reverse() はチュートリアルその 3 で設 定した URLConfに従って:
'/polls/3/results/'のような URL を返します. 3 は p.id の値です.リダイレクト先 の URL は 'results' ビューを呼び出し,最終的なページを表示します.
reverse() の詳細は URL ディスパッチャ のドキュメントを参照して ください.
コード中で {% url %} テンプレートタグのようなことをしたい場合のために, Django では django.core.urlresolvers.reverse() を提供しています. reverse() 関数のシグネチャは以下の通りです:
reverse(viewname, urlconf=None, args=None, kwargs=None)viewname は関数名か URL パターン名 です.通常, urlconf パラメタ につついて考える必要はなく,以下のように,固定引数とキーワード引数だけを指 定して url マッチングを行います:
from django.core.urlresolvers import reverse def myview(request): return HttpResponseRedirect(reverse('arch-summary', args=[1945]))
permalink() は,モデルの get_absolute_url() メソッドのような,完全 な URL パスを返す短いメソッドを書く際に便利なデコレータです. permalin() の詳細は, モデル API のドキュメント を参照してください.
PostgreSQL を使っている場合, DATABASE_HOST に空文字列を指定すると, Unix ドメインソケットを使った接続を意味します.ローカルホストに対する TCP/IP 接続を指定したければ localhost と指定してください.
アップロードファイルのディスク上でのファイル名を取得したい場合や,ファイル にアクセスするための URL を調べたい場合,ファイルのサイズを知りたい場合は, それぞれ get_FOO_filename(), get_FOO_url(), get_FOO_size() メソッドを使えます.詳しくは get_FOO_ メソッド の説明を参照してください.
ファイルフィールドで使える get_FOO_* メソッドの他に, ImageField で は get_FOO_height() および get_FOO_width() メソッドを使えます.詳し くは get_FOO_height() と get_foo_width() の説明 を参照してください.
Python Imaging Library が必要です.
NOTE: 開発版の Django では, FloatField の仕様が変更されています. 以前の仕様は, Django 0.96 のドキュメント を参照してください.
空の文字列値は NULL ではなく空文字列として保存されることに注意して下さ い. null=True が使えるのは,整数型やブール型,日付のような,文字列では ないフィールド型の場合だけです. null はデータベースでの記録操作にのみ かかわるパラメタなので,フォーム上で空の値を入力できるようにしたければ blank=True も指定する必要があるでしょう (blank については後で述べます).
Django を Python egg でインストールしたり, Django から egg 化されたモジュー ルを使っている場合,いくつか追加の設定が必要です.プロジェクト中 (か,どこ か import できる場所) にファイルを作り,以下の内容を入れておきます:
import os os.environ['PYTHON_EGG_CACHE'] = '/some/directory'/some/directory は Apache httpd を動作させているプロセスが読み書き可能 なディレクトリにします.このディレクトリは, egg がコードの展開を必要とする 場合に使われます.
次に, mod_python の PythonImport ディレクティブを使って, mod_python が一 番最初にこのファイルを import するよう指定します.まず,前述の 「 ひとつの Apache で複数の Django を使う 」の節で説明した PythonInterpreter ディレクティブを設定しておきます (複数の Django をイ ンストールしない場合でも必要です).次に, Location か VirtualHost セクションの中に,以下のように PythonImport 行を追加します:
PythonInterpreter my_django PythonImport /path/to/my/project/file.py my_djangomod_python マニュアル で定義されている通り,モジュールの指定は絶対パス (またはドット区切りの import パス表記) で行えます.ここでは絶対パスを使って いますが,これは, PythonImport を処理する時点では,プロジェクトへの Python パスを変更する操作がまだ完了していないからです.
{# {% if foo %}bar{% else %} #}この構文を使えるのは,一行のコメントの場合だけです ({# と #} の間に は改行を入れられません).複数行のコメントアウトを行いたければ,後述の comment タグ を使ってください.
