Quindi voglio pubblicare un paio di mp3 da una cartella in /home/username/music
. Non pensavo che sarebbe stato un grosso problema, ma sono un po 'confuso su come farlo usando le viste generiche e il mio URL.Django: pubblicazione di un download in una vista generica
urls.py
url(r'^song/(?P<song_id>\d+)/download/$', song_download, name='song_download'),
L'esempio che sto seguendo si trova nella sezione di visualizzazione generica delle documentazioni Django: http://docs.djangoproject.com/en/dev/topics/generic-views/ (E 'tutto il senso in basso)
io non sono al 100 % sicuro su come adattare questo alle mie esigenze. Qui è il mio 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
Sono in realtà in perdita di come comunicare che voglio che sputare il mio mp3, invece di quello che fa ora che è quello di produrre un .mp3 con tutta la corrente pagine html contenute. Il mio modello dovrebbe essere il mio mp3? Devo impostare apache per servire i file o Django è in grado di recuperare l'mp3 dal filesystem (ovviamente i permessi necessari) e di servirlo? Se è necessario configurare Apache, come faccio a dirlo a Django?
Grazie in anticipo. Questi file sono tutti in HD, quindi non ho bisogno di "generare" nulla sul posto e mi piacerebbe evitare di rivelare la posizione di questi file, se possibile. Una semplice/canzone/1234/download sarebbe fantastica.
Beh dannazione, suppongo di essere così determinato a farlo funzionare con una visualizzazione generica, non ho pensato perché ne avevo bisogno. Esattamente quello di cui avevo bisogno, grazie! – TheLizardKing
mp3 è file binari, quindi utilizzando la modalità di lettura file 'rb' invece di 'r' – iMath
Ho cercato dappertutto per questo! Grazie per questo! – adbarads