View All Posts. MiCHiLU.com powered by Django ;-)

[Django]: Django和訳ドキュメント sync to r5370

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 を返します. 3p.id の値です.リダイレクト先 の URL は 'results' ビューを呼び出し,最終的なページを表示します.

    reverse() の詳細は URL ディスパッチャ のドキュメントを参照して ください.

ユーティリティメソッド

reverse()

コード中で {% 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]))

DATABASE_HOST

PostgreSQL を使っている場合, DATABASE_HOST に空文字列を指定すると, Unix ドメインソケットを使った接続を意味します.ローカルホストに対する TCP/IP 接続を指定したければ localhost と指定してください.

FileField

アップロードファイルのディスク上でのファイル名を取得したい場合や,ファイル にアクセスするための 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 については後で述べます).

mod_python 上で egg パッケージを使う

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 をイ ンストールしない場合でも必要です).次に, LocationVirtualHost セクションの中に,以下のように PythonImport 行を追加します:

PythonInterpreter my_django
PythonImport /path/to/my/project/file.py my_django

mod_python マニュアル で定義されている通り,モジュールの指定は絶対パス (またはドット区切りの import パス表記) で行えます.ここでは絶対パスを使って いますが,これは, PythonImport を処理する時点では,プロジェクトへの Python パスを変更する操作がまだ完了していないからです.

コメント

{# {% if foo %}bar{% else %} #}

この構文を使えるのは,一行のコメントの場合だけです ({##} の間に は改行を入れられません).複数行のコメントアウトを行いたければ,後述の comment タグ を使ってください.

Mon, 28 May 2007 13:55:57 +0900 source edit
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.1 Japan License.
View All Posts. MiCHiLU.com powered by Django ;-)