Итак, я хочу подать пару mp3-файлов из папки в /home/username/music
. Я не думал, что это будет так важно, но я немного запутался, как это сделать, используя общие представления и мой собственный URL.
urls.py
url(r'^song/(?P<song_id>\d+)/download/$', song_download, name='song_download'),
Пример, которому я следую, находится в разделе общего вида документации Django:
http://docs.djangoproject.com/en/dev/topics/generic-views/ (все внизу)
Я не уверен на 100% в том, как приспособить это к моим потребностям. Вот мой views.py
def song_download(request, song_id):
song = Song.objects.get(id=song_id)
response = object_detail(
request,
object_id = song_id,
mimetype = "audio/mpeg",
)
response['Content-Disposition'= "attachment; filename=%s - %s.mp3" % (song.artist, song.title)
return response
На самом деле я не знаю, как передать, что я хочу, чтобы он выплевывал мой mp3 вместо того, что он делает сейчас - вывод .mp3 со всеми текущими страницами, содержащими html. Должен ли мой шаблон быть моим mp3? Нужно ли настраивать apache для обслуживания файлов, или Django может извлекать mp3 из файловой системы (конечно, соответствующие разрешения) и обслуживать это? Если нужно настроить Apache, как мне сообщить об этом Django?
Заранее спасибо. Все эти файлы находятся на жестком диске, поэтому мне не нужно «генерировать» что-либо на месте, и я бы хотел предотвратить раскрытие местоположения этих файлов, если это возможно. Простая / песня / 1234 / была бы фантастической.