昨晚我将项目上传到 pythonanywhere.com,我想在那里测试我的项目生产设置。在我允许的模型之一中用户上传JPG(团队徽标)。上传过程运行良好,文件位于我的 MEDIA_ROOT 中。问题是,当我尝试在模板中访问它(以将其显示在页面上)时,我收到 404。我的第一个想法是我的 MEDIA_URL 未正确配置,但我仍然不知道为什么。我想说我的媒体文件夹不在项目中 - 它在外部。
在发展模式我看到徽标(我正确设置了 if settings.DEBUG: urlpattern += static(...) 选项)。
我正在使用 Django 1.9.7 和 python 2.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'
我的设置.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>