2016-05-31 12 views
1

Ich habe Django in Entwicklung. In settings.py Ich habe die MEDIA_URLServing Mediendateien in Django

MEDIA_ROOT = os.path.join(BASE_DIR, 'fileuploader/uploaded_files') 
MEDIA_URL = 'fileuploader/uploaded_files/' 

Dann in ursl.py einrichten Ich habe,

if settings.DEBUG: 
    urlpatterns += patterns('', url(r'^media/(?P<path>)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT,}),) 

Soweit ich dies bedeuten, sollten verstehen, dass jede URL Medien/Dateiname die Datei dienen anstatt es nur anzufordern.

In der Vorlage, durch das Modell bin ich in der Lage, den Dateinamen und die URL zu bekommen. Aber ich kann dies nicht zu einem verknüpfbaren Pfad machen, um die Datei herunterzuladen.

<p>File URL link <a href="media{{ item.upload.name }}">media{{ item.upload}}</a></p> 

Zufällig produzieren item.upload und item.upload.name die gleiche Zeichenfolge. Der Dateiname im Dateispeicher lautet ./TESTFILE.txt Muss ich das './' am Anfang entfernen?

Commit 26 ist das Projekt https://github.com/shanegibney/djangoForum

Dank

+1

https://docs.djangoproject.com/en/dev/howto/static-files/ – marcusshep

+0

ich das gesehen habe, aber ist es nicht für statische dateien im gegensatz zu mediadateien, was ich will dienen? –

Antwort

1

ich den MEDIA_URL Tag hinzugefügt und dies erlaubt es, Dateien zum Download bereit.

<p>URL <a href="/{{ MEDIA_URL }}{{ item.upload.name}}">media{{ item.upload}}</a></p> 

Auch in urls.py bis zum Ende ich hinzu,

urlpatterns = [ 
    ...... 
    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 
Verwandte Themen