web-dev-qa-db-ja.com

Django:ビューでImageFieldのURLを取得

ImageFieldの絶対パスをDjangoビューで取得しようとしているので、画像を開いて何かに書き込み、ユーザーに提供できます。

メディアフォルダーに保存されている画像の絶対パスを取得できません。

item = get_object_or_404(Item, pk=pk)
absolute_url = settings.MEDIA_ROOT + str(item.image.path)

エラーが発生しました。item.imageにはパス(The 'banner' attribute has no file associated with it.)。 item.imageはImageFieldであり、画像フィールドに保存されている画像の絶対パスを取得する方法を知りたい(Django view)内)。

24
Byteme

正しく構成されたら、.urlitem.image.urlを使用します。ドキュメントを確認してください こちら

39
okm

たぶんこのように?

@property
def get_absolute_image_url(self):
    return "{0}{1}".format(settings.MEDIA_URL, self.image.url)

どうすればDjango QuerySet? から絶対画像URLのリストを取得できますか?

6
Peter Rosemann

私はちょうど問題が何であるかを見つけました...絶対画像パスはファイル変数に保存されます。

例(ビュー内):

item = Item.objects.get(pk=1)
print item.file # prints out full path of image (saved in media folder)
2
Byteme