Eine scheinbar grundlegende Sache, mit der ich Probleme habe, ist das Rendern einer einfachen Liste von statischen Dateien (sagen wir den Inhalt eines einzelnen Repository-Verzeichnisses auf meinem Server) als eine Liste von Links. Ob das sicher ist oder nicht, ist eine andere Frage, aber angenommen, ich möchte es tun ... So sieht mein Arbeitsverzeichnis aus. Und ich möchte alle Dateien für Analytics-Ordner in meiner Vorlage als Links auflisten.Django. Auflisten von Dateien aus einem statischen Ordner
Ich habe versucht, folgende einige tutorial statische Dateien in view.py zugreifen und es so mit:
view.py
from os import listdir
from os.path import isfile, join
from django.contrib.staticfiles.templatetags.staticfiles import static
def AnalyticsView(request):
mypath = static('/analytics')
allfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
return render_to_response('Rachel/analytics.html', allfiles)
Und meine Vorlage:
<p>ALL FILES:</p>
{% for file in allfiles %}
{{ file }}
<br>
{% endfor %}
Und meine settings.py
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
Und ich bin immer die Fehlermeldung:
FileNotFoundError at /analytics/
[WinError 3] The system cannot find the path specified: '/analytics'
Fehler traceback Jede Hilfe wird sehr
Ich glaube, Sie das Tutorial falsch gelesen. '' 'static''' erzeugt eine URL für eine statische Ressource, nicht den Dateipfad. Sie sollten also Ihr Dateisystem durchqueren und für jede Datei statisch aufrufen, um den Link zu generieren, den Sie in die Webseite –