Template wird nicht gefunden

Django, Flask, Bottle, WSGI, CGI…
Antworten
Pitwheazle
User
Beiträge: 944
Registriert: Sonntag 19. September 2021, 09:40

In meinem Rechentrainer hatte ich bisher zwei Apps "core" und "accounts". Durch diese Aufteilung fiel es viel mir leichter, einen Eintrag zu finden. Jetzt habe ich ziemlich viele Links, Dateien, Filme verknüpft. Bisher lagen die Templates und diese Staticfiles alle im Ordner "accounts" - das wurde mir zu unübersichtlich und daher habe ich eine dritte App angelegt: "medien". jetzt funktionieren einige Links nicht mehr.

Ich habe den URL Pfad angepasst und die Funktion "weitere_aufgaben" im view in "Medien" wird auch aufgerufen.

Code: Alles auswählen

def weitere_aufgaben(req):
    print("hier kommt der Link noch an")
    return render(req, 'medien/weitere_aufgaben.html')  
Das template "weitere_aufgaben.html" wird aber nicht gefunden:

Code: Alles auswählen

TemplateDoesNotExist at /weitere_aufgaben/
medien/weitere_aufgaben.html
Darf ich einen Screenshot einfügen:
Bild
was stimmt den hier wieder nicht?
Benutzeravatar
noisefloor
User
Beiträge: 3894
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
das wurde mir zu unübersichtlich und daher habe ich eine dritte App angelegt: "medien".
Das hört sich leider ziemlich falsch an... Apps sind als in sich geschlossene Einheiten gedacht. Z.B. Rechentrainer, Deutschtrainer, Physiktrainer usw. Wenn man den Durchblick bei einer App nicht mehr hat ist das i.d.R. kein Grund, eine zweite App anzulegen. Gerade dann nicht, wenn es thematisch zusammengehört.

Dir ist klar, dass du bei den statischen Dateien beliebig viele und tief verschachtelte Unterordner anlegen kannst? Dir ist klar, dass sich in einem Projekt Apps statische Dateien teilen können, z.B. dass alle Apps die gleichen Stylesheets verwenden? Ich habe z.B. eine Aufteilung in "CSS", "JS", "Images". Kann man wie gesagt machen, wie man will. Sowohl auf Projekt als auch auf App Ebene. So wie ich das von dir gesagte verstehen brauchst du "nur" mehr Struktur bei den statischen Dateien.

Unabhängig davon: wenn eine Route nur ein Template ausliefert und sonst nicht bietet sich das die Class-Based View TemplateView an.

Gruß, noisefloor
Benutzeravatar
sparrow
User
Beiträge: 4276
Registriert: Freitag 17. April 2009, 10:28

Nur damit keine Missverständnisse aufkommen: Templates haben nichts mit statischen Dateien zu tun, im Sinne von "static" oder "media" im Django Kontext.

Und eine neue App muss durchkonfiguriert sein. Also in den Settings aufgenommen sein und ggf. die Settings für die Templates angepasst werden (falls nicht automatisch in allen Apps gesucht wird).
Pitwheazle
User
Beiträge: 944
Registriert: Sonntag 19. September 2021, 09:40

noisefloor hat geschrieben: Samstag 30. März 2024, 10:09 Das hört sich leider ziemlich falsch an... Apps sind als in sich geschlossene Einheiten gedacht. Z.B. Rechentrainer, Deutschtrainer, Physiktrainer usw. Wenn man den Durchblick bei einer App nicht mehr hat ist das i.d.R. kein Grund, eine zweite App anzulegen. Gerade dann nicht, wenn es thematisch zusammengehört.
Für mich macht es schon Sinn. In "core" sind nur die Aufgeben des Rechentrainers und die Anzeigen dafür, in "account" die Administration und die Optionen für Lehrer und auf die Daten in "medien" verweisen diverse Links zu weiteren Projekten von mir die nicht alle mit dem Rechentrainer direkt zu tun haben - wie z.B. meine Idee für einen Physiktrainer - der bekommt dann (wenn ich es noch erlebe) eine weitere App.
noisefloor hat geschrieben: Samstag 30. März 2024, 10:09 Dir ist klar, dass du bei den statischen Dateien beliebig viele und tief verschachtelte Unterordner anlegen kannst? Dir ist klar, dass sich in einem Projekt Apps statische Dateien teilen können, z.B. dass alle Apps die gleichen Stylesheets verwenden?
Ja
sparrow hat geschrieben: Samstag 30. März 2024, 11:10 Nur damit keine Missverständnisse aufkommen: Templates haben nichts mit statischen Dateien zu tun,
Auch klar
sparrow hat geschrieben: Samstag 30. März 2024, 11:10 Und eine neue App muss durchkonfiguriert sein. Also in den Settings aufgenommen sein...
Das war die Lösung! Danke! (Gerade das mittelfristige Gedächtnis lässt nach :(.)
Antworten