La nuit dernière, j'ai téléchargé mon projet sur pythonanywhere.com où je voulais tester mes paramètres de production . Dans un de mes modèles, j'autorise utilisateurs à télécharger JPG (Logo d'une équipe). Le processus de téléchargement fonctionne bien, le fichier atterrit dans mon MEDIA_ROOT. Le problème est que lorsque j'essaie d'y accéder dans mon modèle (pour l'afficher sur la page), je reçois un 404. Ma première pensée est que mon MEDIA_URL n'est pas configuré correctement mais je ne sais toujours pas pourquoi. Je veux dire que mon dossier multimédia n'est pas dans le projet - c'est à l'extérieur. Sur développement mode Je vois le logo (j'ai l'option if settings.DEBUG: urlpattern + = static (...) correctement définie).404 sur les fichiers multimédias - Django
J'utilise Django 1.9.7 avec Python 2.7 Voici mon code:
Mon modèle:
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'
Mon 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")
Et mon modèle où j'appelle pour le logo:
<td><img src="{{ details.get_logo }}" alt="{{ details.name }} logo" height="64px" width="64px"></td>
Qu'avez-vous configuré pour réellement servir les fichiers à partir de MEDIA_URL? –