Seite 1 von 1

Django: Lese alle image files aus static folder

Verfasst: Sonntag 18. Juli 2021, 07:49
von naheliegend
Hallo,

irgendwie bekomme ich es nicht hin alle image files aus meiner static folder zu lesen, damit ich sie im view an das template per liste übergeben kann.

Code: Alles auswählen

project_name
 - deploy
 - app_name
    - migrations
    - static
       - app_name
          - css
          - fonts
          - images
              - 01.jpg
              - 02.jpg
              - 03.jpg
           - js
    - templates
    - views.py
 - project_name
    - settings.py
    - wsgi.py
 - __init__.py
 - manage.py
Brauche quasi den Pfad zu images, damit ich mit os.dir() dann ['01.jpg', '02.jpg', '03.jpg'] übergeben kann.

Im template lade ich die Bilder immer mit:

Code: Alles auswählen

{% static 'app_name/images/01.jpg' %}
Hat ja jemand eine Idee?

Re: Django: Lese alle image files aus static folder

Verfasst: Sonntag 18. Juli 2021, 08:38
von naheliegend
Edit:

Code: Alles auswählen

>> print(settings.STATIC_ROOT)

/Users/name/project_name/project_name/static/'

Das verstehe ich nicht. Da ist ja gar kein static Ordner? Wie komme ich denn in den static Ordner meiner 'app_name' App?

Re: Django: Lese alle image files aus static folder

Verfasst: Sonntag 18. Juli 2021, 08:57
von kbr
Der static-folder gehört auf Projekt-Ebene, so wie von settings.STATIC_ROOT ausgewiesen, und nicht auf App-Ebene.

Re: Django: Lese alle image files aus static folder

Verfasst: Sonntag 18. Juli 2021, 09:52
von naheliegend

Code: Alles auswählen

project_name
 - deploy
 - app_name
    - migrations
    - templates
    - views.py
 - project_name
     - static
       - app_name
          - css
          - fonts
          - images
              - 01.jpg
              - 02.jpg
              - 03.jpg
           - js
    - settings.py
    - wsgi.py
 - __init__.py
 - manage.py
Jetzt findet er alle meine static files nicht mehr.

Code: Alles auswählen

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")

Und Django docs sagt, man soll die in die App packen: https://docs.djangoproject.com/en/3.2/h ... tic-files/
Store your static files in a folder called static in your app. For example my_app/static/my_app/example.jpg.

Re: Django: Lese alle image files aus static folder

Verfasst: Sonntag 18. Juli 2021, 15:30
von kbr
Es gibt da verschiedene Ansätze. Static-file folders in Apps ist aus meiner Sicht nur sinnvoll, wenn es sich um eine App handelt, die auch in anderen Projekten verwendet werden soll und eigene statische Dateien mitbringt. Ansonsten halte ich für besser, statische Dateien in einem gemeinsamen Verzeichnis –ggf. mit Unterverzeichnissen– zu sammeln. Schau mal unter den folgenden Links:
https://docs.djangoproject.com/en/3.2/h ... tic-files/ (ok, den hattest Du oben schon)
https://docs.djangoproject.com/en/3.2/h ... eployment/