ユーザーがビューのフォームから画像をアップロードできるDjangoで開発されたプロジェクトがあります。データをフォームにバインドし、プロジェクトのデータベースに使用しているディレクトリ内の指定されたフォルダーに画像を保存できるという点で、その部分は正しく機能しているようです。しかし、ページをレンダリングしようとすると、次のような行が表示されます (アップロードされた画像のファイル名は「2220.jpg」です)。
GET http://localhost:8000/Users/.../project/database/user_uploads/08-30/2220.jpg 404 (NOT FOUND)
画像をレンダリングするテンプレートの行は次のとおりです。
<img class="image" src="{{ entry.image.url }}"/>
私のsettings.pyの関連部分:
PROJECT_DIR = os.getcwd()
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'database', 'user_uploads')
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/static/'
画像を含むモデル:
def getImagePath(instance, filename):
"""Generates a path to save the file. These are timestamped by the
current date and stored in the databases directory.
Returns:
Path for the file.
"""
date = datetime.date.today().strftime('%Y-%m-%d')
return os.path.join(
os.getcwd(), 'database', 'user_uploads', date, filename)
class Entry(models.Model):
# Other code omitted
image = models.ImageField(upload_to=getImagePath)
ファイルシステム上のディレクトリだけでなく、ローカルホスト(またはより一般的には私のホスト名)を介して画像を提供するように求めているように見えるため、欠落しているURL構成がいくつかあると思います。ファイルの場所は正しいです。直接取得するのではなく、HTTP リクエストを実行しているようです。私は何が欠けていますか?わかりやすくするために追加情報を提供させていただきます。
前もって感謝します!