J'ai donc du mal à lire des fichiers mp3 sur mon application Django.Lecture de fichiers mp3 dans mon modèle Django 1.11
settings.py - Ajout MEDIA_ROOT et MEDIA_URLS
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
MEDIA_URL = '/uploads/'
models.py - J'ai une configuration simple de la classe audio
class Audio(models.Model):
author = models.ForeignKey('auth.User')
title = models.CharField(max_length=200)
audio_file = models.FileField(upload_to='audio/', blank=True)
description = models.TextField()
featured_image = models.URLField(max_length=500)
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
de views.py - Voici mon avis
class AudioListView(ListView):
context_object_name = 'audio'
template_name = 'media/audio/audio_list.html'
model = Audio
audio_list.html - Voici mon modèle
{% block content %}
{% for aud in audio %}
<p>Audio Title: {{ aud.title }}</p>
<img src="{{ aud.featured_image}}" alt="">
<hr>
<audio controls>
<source src="{{ aud.audio_file }}" type="audio/mp3">
</audio>
<hr>
<p>Audio Description: {{ aud.description }}</p>
{% endfor %}
{% endblock %}
je peux aller et ajouter un fichier audio et il télécharge dans le répertoire suivant
# myapp -> uploads -> audio -> audio.mp3
Avec la configuration suivante du lecteur audio html5 ne montre même pas. Quand je vérifie la source pour la page je reçois ce qui suit:
<audio controls>
<source src="audio/audio.mp3" type="audio/mp3">
</audio>
J'ai parcouru la documentation de Django. J'ai cherché partout google. Je ne pense pas que ce serait si difficile de tirer un chemin de fichier et de le jouer.
Un conseil serait apprécié!
EDIT: Ajouter mes fichiers url
# mainapp/urls.py
from django.conf.urls import include, url
from django.contrib import admin
from django.contrib.flatpages import views
from home.views import HomeTemplateView
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('home.urls')),
url(r'^blog/', include('blog.urls')),
url(r'^media/', include('media.urls')),
url(r'^about/', views.flatpage, {'url': '/about/'}, name='about'),
url(r'^contact/', views.flatpage, {'url': '/contact/'}, name='contact'),
url(r'^donations/', views.flatpage, {'url': '/donations/'},
name='donations'),]
# media/urls.py
from django.conf import settings
from django.conf.urls.static import static
from django.conf.urls import include, url
from media.views import AudioListView, VideoListView
urlpatterns = [
url(r'^video/$', VideoListView.as_view(), name='video'),
url(r'^audio/$', AudioListView.as_view(), name='audio'),
]
Le lecteur html5 n'apparaît toujours pas. Je pense que cela pourrait avoir quelque chose à voir avec la configuration de mon URL. Je vais ajouter ces fichiers à mon message d'origine. –
lorsque je vérifie la source de la page, je peux voir que le chemin apparaît.
@BrentPhillips, Vous avez besoin d'une permission sur ce répertoire pour voir le joueur, Regardez la réponse mise à jour. Si la solution a aidé, veuillez sélectionner la réponse. Si encore, un problème me le faire savoir en commentant ci-dessous. –