revision-up-to: | 8961 (1.0) |
---|
Django の File 型は、以下の属性とメソッドを備えています:
ローカルのファイルシステムにおけるファイルの絶対パスです。
カスタムのファイルストレージシステム の場合、必ずしもローカルにファイルを保存しません。ローカルにファイルを 保存しないシステムでは、 path は None です。
ファイルを取得できる URL です。 templates で 使う場合に便利です。例えば、ファイル ファイルの管理 の Car の例で、車の写真を表示するテンプレートは以下のように書けます:
<img src='{{ car.photo.url }}' alt='{{ car.name }}' />
ファイルをオープンまたは再オープン (かつ File.seek(0)) します。 mode 引数には、 Python の標準の関数 open() と同じ引数を指定でき ます。
ファイルを再オープンした場合、 mode は最初にオープンしたときのファ イルモードをオーバライドします。 None を指定すると、最初のモードと 同じモードを使います。
ファイルを chunk_size に指定したサイズのチャンク ("chunk") づつ繰り 返して読み出します。 chunk_size のデフォルトサイズは 64KB です。
このメソッドは、ファイル全体をメモリに保存しなくても、ディスクからスト リーム読み出しできるので、巨大なファイルを読むときに便利です。
(Car.photo のように) オブジェクトに結び付いてる File には、 以下の二つのメソッドがあります:
ファイル名 name とコンテンツ content を使って新たなファイルを生 成し、保存します。このメソッドは既存のファイルを置き換えるのではなく、 新たなファイルを作成して、オブジェクトがそのファイルを指すようにします。 save を True にすると、ファイルが保存されたときに save() メ ソッドを呼び出します。すなわち、以下の 2 行:
>>> car.photo.save('myphoto.jpg', contents, save=False)
>>> car.save()
は、以下の 1 行と同じです:
>>> car.photo.save('myphoto.jpg', contents, save=True)
content 引数は File またはそのサブクラスのインスタンスでな ければなりません。
Aug 31, 2012