Liste-Verzeichnis den Inhalt der Datei in ein Django template

Ich bin nur zu lernen, Python & Django. (Vielen Dank an alle, wer trägt hier-es ist schon eine unschätzbare Ressource!)

Eine scheinbar einfache Sache, dass ich Probleme mit dem rendering ist eine einfache Liste von statischen Dateien (etwa den Inhalt eines einzigen repository-Verzeichnis auf meinem server) als eine Liste von Download-links. Ob diese sicher ist oder nicht, ist eine andere Frage, aber nehmen wir an, ich will es tun...

Diesem Beitrag geholfen zu lenken mich in die richtige Richtung:
Python-Verzeichnis-Liste zurückgegeben Django template

Diesem code-snippet Ausgänge die Dateinamen in "myfiles" wenn führen Sie von einer Eingabeaufforderung:

path= os.path.dirname(os.path.abspath(__file__))  
myfiles = os.path.join(path, 'myfiles')  
os.chdir(myfiles)  
for files in os.listdir("."):
     print files  

Aber wie übertrage ich diese Dateien auf eine Django-template und generiert eine Liste von links? Ich denke, ich kann, müssen Sie erstellen ein Python-dictionary/Tupel von einer Art, um es durchsuchbar, übergeben Sie es als template-Variablen und machen es in einer for-Schleife?

Muss ich hinzufügen, einen Eintrag in mein urls.py Datei diese Arbeit zu machen? So etwas wie das?

(r'^myfiles/(?P<path>.*)$', 'django.views.static.serve', {'document_root': os.path.join(os.path.dirname(__file__), 'myfiles'), 'show_indexes': True}),

Vielen Dank für Ihre Hilfe! Ich bin nur zu lernen, und ich konnte nicht wirklich herausfinden, wie dies aus den vorhandenen code-snippets online.

EDIT: Dies ist, was ich habe, in meinem views.py: (du wirst bemerken, von der '\\', dass ich auf einem Windows-system)

def myfiles_page(request):
    path = os.path.dirname(os.path.abspath(__file__))
    myfiles = os.path.join(path, 'myfiles\\')
    os.chdir(myfiles)
    x = 0
    d = {}
    for file in os.listdir("."):
        d[x] = (myfiles + file)
        x = x + 1

    variables = RequestContext(request, {
    'user' : request.user,
    'filedict' : d,
    })
    return render_to_response('myfiles_page.html', variables)

Dies ist, wie ich war versucht, es zu erhalten, um die Anzeige in eine Vorlage:
(nach der Django-Dokumentation)

{% for key, value in filedict %}
    {{ key }}: {{ value }}
{% endfor %}

Aber 'filedict" wird noch nicht angezeigt, nichts in der Vorlage. Irgendwelche Ideen?

InformationsquelleAutor fieryred | 2011-02-02
Schreibe einen Kommentar