2016-05-22 4 views
0

なぜ私は管理者経由で画像を保存するのですか?イメージはデータベースに保存されますが、管理パネルに保存されたイメージとのリンクを押すだけで表示されません。このパスにイメージファイルがないため、ページが見つかりません(404)が表示されますが、同じパスでプロジェクトのフォルダにファイルを挿入すると、そのファイルが表示されます。したがって、静的ファイルのパスは正しく定義されています。djangoの管理者の問題で静的/メディアフォルダに画像を保存する

photo = models.ImageField(upload_to = 'photo/', blank=True)` 

設定:
は私がモデルに画像フィールドを持っている

STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static") 
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"), 
) 
MEDIA_ROOT = os.path.join(BASE_DIR, '..', 'static','media') 
MEDIA_URL = '/static/media/' 

をし、それは私のプロジェクトの静的フォルダに保存しなければならないようだが、それはしていません。

私のプロジェクト構造:

+0

あなたは 'MEDIA_ROOT'パスを設定しましたか?/static/ – DiA

+0

はい、MEDIA_ROOT = os.path.join(BASE_DIR、 '..'、 'static'、 'media')の/ media /ディレクトリに保存されているユーザーアップロードファイル – Andriy

答えて

1

メディアのルートは次のようにする必要があります -

MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static','media') 

次のことを確認してください - あなたのプロジェクトが存在するフォルダに「静的」という名前のフォルダが存在します。 「media」という名前のフォルダが含まれている必要があります。

更新:あなたのフォルダ構造は間違っていると思います。以下はあなたの設定通りの構造でなければなりません -

-static       // MEDIA_ROOT and STATIC_ROOT setting 
    -media       // MEDIA_ROOT setting 
-project(src) 
    -app1 
     -models.py 
     -views.py 
     -... 
    -static      // STATICFILES_DIRS setting 
+0

私はあなたのパスを何も変わっていません。私はブラウザにhttp://127.0.0.1:8000/static/media/photo/img.jpgを持っていましたが、これはファイルへの正しいパスですが、何らかの理由でファイルがそこに保存されません。 – Andriy

+0

あなたは正しいかもしれませんが、私の構造も可能だと思います。私の場合は何ができますか? – Andriy

+1

設定をMEDIA_ROOT = os.path.join(BASE_DIR、 'static'、 'media')に変更してください。 – RA123

関連する問題