2016-07-31 11 views
3

昨夜私はの生産の設定をテストしたいpythonanywhere.comに自分のプロジェクトをアップロードしました。私のモデルの1つでは、ユーザーは JPG(Logo of a team)をアップロードできます。アップロードプロセスはうまくいき、ファイルは自分のMEDIA_ROOTに格納されます。問題は、テンプレートで(ページに表示するために)テンプレートにアクセスしようとすると404が発生するということです。私の最初の考えは、MEDIA_URLが正しく設定されていないことですが、なぜか分かりません。メディアフォルダがプロジェクトにないと言いたいのですが、それは外にあります。 オン開発モード私はロゴを参照してください(私はif settings.DEBUG:urlpattern + =静的(...)オプションが正しく設定されています)。404メディアファイル - Django

私はDjangoは私のコードであるここでのpython 2.7 を1.9.7使用してい

マイモデル:

class Team(models.Model): 

name = models.CharField(verbose_name='Name of the team', max_length=24) 
logo = models.ImageField(upload_to='team_logos', verbose_name='Logo', blank=True, null=True) 
def get_logo(self): 
    u"""Get path to logo, if there is no logo then show default.""" 
    if self.logo: 
     return self.logo.url 
    return '/static/img/default_team_logo.jpg' 

マイSettings.py:

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

そして、私のテンプレート私はロゴを要求します:

<td><img src="{{ details.get_logo }}" alt="{{ details.name }} logo" height="64px" width="64px"></td> 
+0

実際にMEDIA_URLからファイルを提供するように設定したことはありますか? –

答えて

6

PythonAnywhereのダッシュボードにメディアファイルマッピングを設定する必要があります。そのdocumentationから:

  • ゴーPythonAnywhereダッシュボード
  • に行った事がウェブタブに静的ファイルセクション
  • にあなたの中にURLセクション(中MEDIA_URLと同じURLを入力します。ケース、/media/
  • MEDIA_ROOTからパスセクションのパスを入力してください(フルパス、/home/username/etc

をロードしてください。をリロードし、アップロードしたファイルを正しく配信する必要があります。

+0

ありがとう@rafalmp - あなたは本当に私の一日を保存しました:)私はpythonanywhere.comのヘルプセクションを探していましたが、そのようなものは見つかりませんでした。再度、感謝します! :) –

関連する問題