のコンテキストでどのように正しく設定する必要がMEDIA_ROOT
ありますか? ImageField のパラメータはどのように設定すればよいですか? とのコメントが少ないので、何に使うのか、正しく設定する方法を知りたいです。MEDIA_URL
ImageField
upload_to
MEDIA_ROOT
MEDIA_URL
4097 次
1 に答える
10
MEDIA_ROOTは、ファイルを配置するディレクトリです。MEDIA_URLは、同じディレクトリパスにつながるURLである必要があります。
upload_toオプションは、そのディレクトリ内のディレクトリにすることができるため、upload_to="foo"はMEDIA_ROOTの"foo"サブディレクトリに移動します。
または、画像フィールドインスタンスと提案されたベースファイル名を取得し、使用する実際のファイル名を返す関数にすることもできます。それで
upload_to=get_photo_path
と:
def get_photo_path(instance, filename):
if not filename: return ""
exts = re.search('[.]([^.]*)$',filename)
if exts is None:
ext = ''
else:
ext = '.'+exts.group(1)
return "newname%s" % (ext)
ファイルの名前を変更しますが、拡張子は保持します。「newname。」は引き続きMEDIA_ROOTディレクトリにあることに注意してください。「/usr/ whatever / something / foo/newname。」を返す必要はありません。それはすでにあなたのためにそこにMEDIA_ROOTをタックします。
アップデート:
参考までに、知っておくといいです
<modelobject>.<imagefieldname>.field.generate_filename( <modelobject>, proposed_name )
これは、モデルの外部から、画像が入る部分的なパスを生成する方法です。絶対パスにするには、これの前にMEDIA_ROOTを手動で追加する必要があります。
于 2010-07-09T18:14:07.033 に答える